Resumo : neste tutorial, você aprenderá como criar um widget de entrada de tempo usando a QTimeEdit
classe PyQt.
Introdução ao widget PyQt QTimeEdit
A QTimeEdit
classe permite criar um widget para edição de horário:
O QTimeEdit
widget 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 QTimeEdit
tem as seguintes propriedades úteis:
Propriedade | Descrição |
---|---|
time() |
Retorne a hora exibida pelo widget. O valor de retorno tem o tipo . Para convertê-lo em um datetime.time objeto Python, você pode usar o toPyTime() método da classe. |
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 QTimeEdit
emite o editingFinished
sinal quando a edição é finalizada.
Exemplo de widget PyQt QTimeEdit
O programa a seguir usa a QTimeEdit
classe 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 QTimeEdit
widget:
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 QLabel
widget para exibir o valor do time_edit
widget 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
QTimeEdit
classe para criar um widget de entrada de data. - Use o
date()
método para obter o valor atual doQTimeEdit
widget. - Conecte-se ao
editingFinished
sinal para acionar uma ação quando a edição for concluída.