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: