PyQt - Widget QSpinBox

UMA QSpinBoxO objeto apresenta ao usuário uma caixa de texto que exibe um número inteiro com o botão para cima / para baixo à sua direita. O valor na caixa de texto aumenta / diminui se o botão para cima / para baixo for pressionado.

Por padrão, o número inteiro na caixa começa com 0, vai até 99 e muda na etapa 1. Use QDoubleSpinBox para valores flutuantes.

Métodos importantes da classe QSpinBox estão listados na tabela a seguir -

Sr. Não. Métodos e Descrição
1

setMinimum()

Define o limite inferior do contador

2

setMaximum()

Define o limite superior do contador

3

setRange()

Define o valor mínimo, máximo e passo

4

setValue()

Define o valor da caixa de rotação programaticamente

5

Value()

Retorna o valor atual

6

singleStep()

Define o valor do passo do contador

O objeto QSpinBox emite o sinal valueChanged () toda vez que o botão up / own é pressionado. A função de slot associada pode recuperar o valor atual do widget pelo método value ().

O exemplo a seguir tem um rótulo (l1) e spinbox (sp) colocados no layout vertical de uma janela superior. O sinal valueChanged () é conectado ao método valuechange ().

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

A função valueChange () exibe o valor atual como legenda do rótulo.

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

O código completo é o seguinte -

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

O código acima produz a seguinte saída -