Resumo : neste tutorial, você aprenderá como usar o QSpinBox
widget PyQt para criar uma caixa giratória.
Introdução ao widget PyQt QSpinBox
Uma caixa giratória combina uma entrada de texto e um controle de cima para baixo. O controle up-down permite girar através de um conjunto de valores incrementais:
Os valores de uma caixa giratória podem ser inteiros ou conjuntos discretos de valores, por exemplo, dias de semanas e meses de anos.
Uma caixa giratória permite aumentar ou diminuir um valor clicando nos botões para cima/para baixo ou pressionando a tecla para cima/para baixo no teclado. Além disso, você pode digitar um valor manualmente na caixa giratória.
Para criar uma caixa giratória, você usa a QSpintBox
classe:
QSpinBox()
Linguagem de código: Python ( python )
Sempre que o valor de uma caixa giratória muda, ela emite o valueChanged()
sinal que envia o valor atual como um número inteiro.
Além disso, o QSpinBox
emite o textChanged
sinal que fornece o valor de uma caixa giratória como uma instância do QString
.
A tabela a seguir lista algumas propriedades úteis do QSpinBox
:
Propriedade | Descrição |
---|---|
value |
O valor inteiro atual da caixa giratória. |
cleanText |
O valor da string atual da caixa giratória (exclui o prefixo e o sufixo). |
maximum |
O valor inteiro máximo da caixa giratória |
minimum |
O valor inteiro mínimo da caixa de rotação. |
prefix |
Uma string que precede o valor exibido. |
suffix |
Uma string que é anexada ao valor exibido. |
singleStep |
Um valor inteiro de incremento/decremento quando as setas para cima/para baixo são clicadas |
wrapping |
é um valor booleano que determina se deve passar de uma extremidade do intervalo para a outra quando as setas para cima/para baixo são clicadas. |
Vejamos um exemplo de uso da QSpinBox
classe PyQt.
Exemplo PyQt QSpinBox
O programa a seguir exibe uma caixa giratória que permite inserir um valor entre um e 100:
import sys
from PyQt6.QtWidgets import QApplication, QWidget, QSpinBox, QLabel, QFormLayout
from PyQt6.QtCore import Qt
class MainWindow(QWidget):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.setWindowTitle('PyQt QSpinBox')
self.setMinimumWidth(300)
# create a grid layout
layout = QFormLayout()
self.setLayout(layout)
amount = QSpinBox(minimum=1, maximum=100, value=20, prefix='$')
amount.valueChanged.connect(self.update)
self.result_label = QLabel('', self)
layout.addRow('Amount:', amount)
layout.addRow(self.result_label)
# show the window
self.show()
def update(self, value):
self.result_label.setText(f'Current Value: {value}')
if __name__ == '__main__':
app = QApplication(sys.argv)
window = MainWindow()
sys.exit(app.exec())
Linguagem de código: Python ( python )
Como funciona.
Primeiro, crie um QSpinBox
objeto com as opções de mínimo, máximo, valor e prefixo:
amount = QSpinBox(minimum=1, maximum=100, value=20, prefix='$')
Linguagem de código: Python ( python )
Segundo, conecte o valueChanged
sinal ao update()
método:
amount.valueChanged.connect(self.update)
Linguagem de código: Python ( python )
Terceiro, crie um QLabel
para exibir o valor atual da caixa giratória:
self.result_label = QLabel('', self)
Linguagem de código: Python ( python )
Por fim, defina o update()
método que altera o valor do rótulo do resultado sempre que o valor da caixa giratória muda:
def update(self, value):
self.result_label.setText(f'Current Value: {value}')
Linguagem de código: Python ( python )
Resumo
- Use
QSpinBox
a classe para criar uma caixa giratória. - Conecte-se ao
valueChanged
sinal para acionar uma ação quando o valor atual de uma caixa giratória mudar