Класс PyQt QDateEdit в Python — свойства и пример использования
Класс PyQt QDateEdit предоставляет вам виджет для редактирования дат в Python:
Что такое 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()))
Выход: