PyQt - Widget QSpinBox

UN QSpinBoxL'oggetto presenta all'utente una casella di testo che visualizza un intero con il pulsante su / giù alla sua destra. Il valore nella casella di testo aumenta / diminuisce se si preme il pulsante su / giù.

Per impostazione predefinita, il numero intero nella casella inizia con 0, sale a 99 e cambia al passaggio 1. Utilizzare QDoubleSpinBox per i valori float.

I metodi importanti della classe QSpinBox sono elencati nella tabella seguente:

Sr.No. Metodi e descrizione
1

setMinimum()

Imposta il limite inferiore del contatore

2

setMaximum()

Imposta il limite superiore del contatore

3

setRange()

Imposta il valore minimo, massimo e del passo

4

setValue()

Imposta il valore della casella di selezione a livello di codice

5

Value()

Restituisce il valore corrente

6

singleStep()

Imposta il valore del passo del contatore

L'oggetto QSpinBox emette il segnale valueChanged () ogni volta che viene premuto il pulsante su / proprio. La funzione slot associata può recuperare il valore corrente del widget tramite il metodo value ().

L'esempio seguente ha un'etichetta (l1) e una casella numerica (sp) inserite nel layout verticale di una finestra in alto. Il segnale valueChanged () è collegato al metodo valuechange ().

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

La funzione valueChange () visualizza il valore corrente come didascalia dell'etichetta.

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

Il codice completo è il seguente:

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()

Il codice precedente produce il seguente output: