Resumo : neste tutorial, você aprenderá como criar um widget de entrada de data usando a QDateEdit
classe PyQt.
Introdução ao widget PyQt QDateEdit
A QDateEdit
aula fornece um widget para editar datas com base na QDateTimeEdit
aula:
O QDateEdit
widget permite que você edite a data usando o teclado ou as teclas de seta para cima/para baixo para aumentar/diminuir o valor da data.
Além disso, você pode usar as teclas de seta para esquerda/direita para navegar entre as seções de dia, mês e ano na entrada.
O QDateEdit
tem as seguintes propriedades úteis:
Propriedade | Descrição |
---|---|
date() |
Retorne a data exibida pelo widget. O valor de retorno tem o tipo . Se quiser convertê-lo em um datetime.date objeto Python, você pode usar o toPyDate() método da classe. |
minimumDate |
Especifique a data mais antiga que pode ser definida pelo usuário |
maximumDate |
Especifique a última data que pode ser definida pelo usuário |
displayFormat |
é uma string que formata a data exibida no widget |
O QDateEdit
emite o editingFinished
sinal quando a edição é finalizada.
Exemplo de widget PyQt QDateEdit
O programa a seguir usa a QDateEdit
classe para criar um widget para edição de data:
import sys
from PyQt6.QtWidgets import QApplication, QWidget, QDateEdit, QLabel, QFormLayout
from datetime import date
class MainWindow(QWidget):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.setWindowTitle('PyQt QDateEdit')
self.setMinimumWidth(200)
# create a grid layout
layout = QFormLayout()
self.setLayout(layout)
self.date_edit = QDateEdit(self)
self.date_edit.editingFinished.connect(self.update)
self.result_label = QLabel('', self)
layout.addRow('Date:', self.date_edit)
layout.addRow(self.result_label)
# show the window
self.show()
def update(self):
value = self.date_edit.date()
print(type(value))
self.result_label.setText(str(value.toPyDate()))
if __name__ == '__main__':
app = QApplication(sys.argv)
window = MainWindow()
sys.exit(app.exec())
Linguagem de código: Python ( python )
Como funciona.
Primeiro, crie o QDateEdit
widget:
self.date_edit = QDateEdit(self)
Linguagem de código: Python ( python )
Segundo, conecte o editingFinished()
sinal ao update()
método:
self.date_edit.editingFinished.connect(self.update)
Linguagem de código: Python ( python )
Terceiro, crie um QLabel
widget para exibir o valor do date_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 data:
def update(self):
value = self.date_edit.date()
self.result_label.setText(str(value.toPyDate()))
Linguagem de código: Python ( python )
Saída:
Resumo
- Use a
QDateEdit
classe para criar um widget de entrada de data. - Use o
date()
método para obter o valor atual doQDateEdit
widget - Conecte-se ao
editingFinished
sinal para acionar uma ação quando a edição for concluída.