PyQt - Widget QSpinBox

UNE QSpinBoxobjet présente à l'utilisateur une zone de texte qui affiche un entier avec le bouton haut / bas à sa droite. La valeur dans la zone de texte augmente / diminue si vous appuyez sur le bouton haut / bas.

Par défaut, le nombre entier dans la zone commence par 0, va jusqu'à 99 et change à l'étape 1. Utilisez QDoubleSpinBox pour les valeurs flottantes.

Les méthodes importantes de la classe QSpinBox sont répertoriées dans le tableau suivant -

N ° Sr. Méthodes et description
1

setMinimum()

Définit la limite inférieure du compteur

2

setMaximum()

Définit la limite supérieure du compteur

3

setRange()

Définit la valeur minimum, maximum et pas

4

setValue()

Définit la valeur de la boîte de sélection numérique par programmation

5

Value()

Renvoie la valeur actuelle

6

singleStep()

Définit la valeur de pas du compteur

L'objet QSpinBox émet le signal valueChanged () chaque fois que vous appuyez sur le bouton haut / propre. La fonction slot associée peut récupérer la valeur actuelle du widget par la méthode value ().

L'exemple suivant a une étiquette (l1) et une boîte de sélection (sp) placées dans la disposition verticale d'une fenêtre supérieure. Le signal valueChanged () est connecté à la méthode valuechange ().

self.sp.valueChanged.connect(self.valuechange)

La fonction valueChange () affiche la valeur actuelle en tant que légende de l'étiquette.

self.l1.setText("current value:"+str(self.sp.value()))

Le code complet est le suivant -

import sys
from PyQt4.QtCore import *
from PyQt4.QtGui import *

class spindemo(QWidget):
   def __init__(self, parent = None):
      super(spindemo, self).__init__(parent)
      
      layout = QVBoxLayout()
      self.l1 = QLabel("current value:")
      self.l1.setAlignment(Qt.AlignCenter)
      layout.addWidget(self.l1)
      self.sp = QSpinBox()
		
      layout.addWidget(self.sp)
      self.sp.valueChanged.connect(self.valuechange)
      self.setLayout(layout)
      self.setWindowTitle("SpinBox demo")
		
   def valuechange(self):
      self.l1.setText("current value:"+str(self.sp.value()))

def main():
   app = QApplication(sys.argv)
   ex = spindemo()
   ex.show()
   sys.exit(app.exec_())
	
if __name__ == '__main__':
   main()

Le code ci-dessus produit la sortie suivante -