Класс PyQt QDateEdit в Python — свойства и пример использования

Класс PyQt QDateEdit предоставляет вам виджет для редактирования дат в Python:

Использование класса PyQt QDateEdit

Что такое PyQt QDateEdit

Виджет QDateEdit позволяет редактировать дату с помощью клавиатуры или клавиш со стрелками вверх/вниз для увеличения/уменьшения значения даты.

Кроме того, вы можете использовать клавиши со стрелками влево/вправо для перемещения между разделами дня, месяца и года в пределах записи.

QDateEdit имеет следующие полезные свойства:

Свойство Описание
date() Вернет дату, отображаемую виджетом. Возвращаемое значение имеет тип QDate. Если вы хотите преобразовать его в объект Python datetime.date, вы можете использовать метод toPyDate() класса QDate.
minimumDate Укажет самую раннюю дату, которую может установить пользователь
maximumDate Укажет самую позднюю дату, которую может установить пользователь
displayFormat Строка, которая форматирует дату, отображаемую в виджете

QDateEdit выдает сигнал editingFinished по завершении редактирования.

Пример создания виджета с помощью PyQt QDateEdit

Следующая программа использует класс QDateEdit для создания виджета для редактирования даты:

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())

Как это работает.

  • Сначала создайте виджет QDateEdit:
self.date_edit = QDateEdit(self)
  • Во-вторых, подключите сигнал editingFinished() к методу update():
self.date_edit.editingFinished.connect(self.update)
  • В-третьих, создайте виджет QLabel для отображения значения виджета date_edit после завершения редактирования:
self.result_label = QLabel('', self)
  • Наконец, определите метод update(), который обновляет виджет метки текущим значением записи даты:
def update(self):
    value = self.date_edit.date()
    self.result_label.setText(str(value.toPyDate()))

Выход:

Пример PyQt QDateEdit

Похожие посты
Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *