PyQt QTime

Resumo : neste tutorial, você aprenderá como criar um widget de entrada de tempo usando a QTimeEditclasse PyQt.

Introdução ao widget PyQt QTimeEdit

A QTimeEditclasse permite criar um widget para edição de horário:

O QTimeEditwidget permite que você edite o tempo usando o teclado ou as teclas de seta para cima/para baixo para aumentar/diminuir o valor do tempo. Além disso, você pode usar as teclas de seta para a esquerda/direita para navegar entre as seções de dia, mês e ano na entrada.

O QTimeEdittem as seguintes propriedades úteis:

Propriedade Descrição
time() Retorne a hora exibida pelo widget. O valor de retorno tem o tipo QTime. Para convertê-lo em um datetime.timeobjeto Python, você pode usar o toPyTime()método da QTimeclasse.
minimumTime Especifique o primeiro horário que pode ser definido pelo usuário.
maximumTime Especifique o último horário que pode ser definido pelo usuário.
displayFormat é uma string que formata a hora exibida no widget.

O QTimeEditemite o editingFinishedsinal quando a edição é finalizada.

Exemplo de widget PyQt QTimeEdit

O programa a seguir usa a QTimeEditclasse para criar um widget para edição de horário:

import sys
from PyQt6.QtWidgets import QApplication, QWidget, QTimeEdit, QLabel, QFormLayout


class MainWindow(QWidget):
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)

        self.setWindowTitle('PyQt QTimeEdit')
        self.setMinimumWidth(200)

        # create a grid layout
        layout = QFormLayout()
        self.setLayout(layout)

        self.time_edit = QTimeEdit(self)
        self.time_edit.editingFinished.connect(self.update)

        self.result_label = QLabel('', self)

        layout.addRow('Time:', self.time_edit)
        layout.addRow(self.result_label)

        # show the window
        self.show()

    def update(self):
        value = self.time_edit.time()
        self.result_label.setText(str(value.toPyTime()))


if __name__ == '__main__':
    app = QApplication(sys.argv)
    window = MainWindow()
    sys.exit(app.exec())
Linguagem de código:  Python  ( python )

Como funciona.

Primeiro, crie o QTimeEditwidget:

self.time_edit = QTimeEdit(self)Linguagem de código:  Python  ( python )

Segundo, conecte o editingFinished()sinal ao update()método:

self.time_edit.editingFinished.connect(self.update)Linguagem de código:  Python  ( python )

Terceiro, crie um QLabelwidget para exibir o valor do time_editwidget assim que a edição for concluída:

self.result_label = QLabel('', self)Linguagem de código:  Python  ( python )

Por fim, defina o update()método que atualiza o widget de rótulo com o valor atual da entrada de tempo:

def update(self):
    value = self.time_edit.time()
    self.result_label.setText(str(value.toPyTime()))Linguagem de código:  Python  ( python )

Saída:

Resumo

  • Use a QTimeEditclasse para criar um widget de entrada de data.
  • Use o date()método para obter o valor atual do QTimeEditwidget.
  • Conecte-se ao editingFinishedsinal para acionar uma ação quando a edição for concluída.

Deixe um comentário

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