PyQt QDate

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

Introdução ao widget PyQt QDateEdit

A QDateEditaula fornece um widget para editar datas com base na QDateTimeEditaula:

PyQt QDate

O QDateEditwidget 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 QDateEdittem as seguintes propriedades úteis:

Propriedade Descrição
date() Retorne a data exibida pelo widget. O valor de retorno tem o tipo QDate. Se quiser convertê-lo em um datetime.dateobjeto Python, você pode usar o toPyDate()método da QDateclasse.
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 QDateEditemite o editingFinishedsinal quando a edição é finalizada.

Exemplo de widget PyQt QDateEdit

O programa a seguir usa a QDateEditclasse 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 QDateEditwidget:

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 QLabelwidget para exibir o valor do date_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 data:

def update(self):
    value = self.date_edit.date()
    self.result_label.setText(str(value.toPyDate()))Linguagem de código:  Python  ( python )

Saída:

PyQt QDate

Resumo

  • Use a QDateEditclasse para criar um widget de entrada de data.
  • Use o date()método para obter o valor atual do QDateEditwidget
  • 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 *