PyQt: widget QSpinBox

UN QSpinBoxEl objeto presenta al usuario un cuadro de texto que muestra un número entero con el botón arriba / abajo a su derecha. El valor en el cuadro de texto aumenta / disminuye si se presiona el botón arriba / abajo.

De forma predeterminada, el número entero en el cuadro comienza con 0, va hasta 99 y cambia en el paso 1. Use QDoubleSpinBox para valores flotantes.

Los métodos importantes de la clase QSpinBox se enumeran en la siguiente tabla:

No Señor. Métodos y descripción
1

setMinimum()

Establece el límite inferior del contador

2

setMaximum()

Establece el límite superior del contador

3

setRange()

Establece el valor mínimo, máximo y de paso.

4

setValue()

Establece el valor del cuadro de giro mediante programación

5

Value()

Devuelve el valor actual

6

singleStep()

Establece el valor de paso del contador

El objeto QSpinBox emite la señal valueChanged () cada vez que se presiona el botón arriba / propio. La función de ranura asociada puede recuperar el valor actual del widget mediante el método value ().

El siguiente ejemplo tiene una etiqueta (l1) y un cuadro de número (sp) colocados en un diseño vertical de una ventana superior. La señal valueChanged () está conectada al método valuechange ().

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

La función valueChange () muestra el valor actual como título de la etiqueta.

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

El código completo es el siguiente:

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

El código anterior produce la siguiente salida: