PyQt QSpinBox

Resumo : neste tutorial, você aprenderá como usar o QSpinBoxwidget 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:

PyQt QSpinBox

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 QSpintBoxclasse:

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 QSpinBoxemite o textChangedsinal 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 QSpinBoxclasse 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 QSpinBoxobjeto 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 valueChangedsinal ao update()método:

 amount.valueChanged.connect(self.update)Linguagem de código:  Python  ( python )

Terceiro, crie um QLabelpara 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 QSpinBoxa classe para criar uma caixa giratória.
  • Conecte-se ao valueChangedsinal para acionar uma ação quando o valor atual de uma caixa giratória mudar

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *