На этом шаге мы перечислим основные методы этих классов.
Класс QDateTimeEdit наследует все методы из класса QAbstractSpinBox (см. 118 шаг) и дополнительно реализует следующие методы (здесь приведены только самые полезные - полный их список доступен на странице https://doc.qt.io/qt-5/qdatetimeedit.html):
dateTimeEdit.setDisplayFormat("dd.MM.yyyy HH:mm:ss")
Рис.1. Компонент QDateEdit с открытым календарем
Текст приложения:
# -*- coding: utf-8 -*- from PyQt5 import QtWidgets, QtCore import sys import datetime app = QtWidgets.QApplication(sys.argv) window = QtWidgets.QWidget() window.setWindowTitle("QDateEdit") now = datetime.datetime.now() # Получить текущую дату dateedit = QtWidgets.QDateEdit(now) # Использовать ее в конструкторе dateedit.setCalendarPopup(True) # Эта строка добавлена vbox = QtWidgets.QVBoxLayout() vbox.addWidget(dateedit) window.setLayout(vbox) window.show() sys.exit(app.exec_())
При изменении значений даты или времени генерируются сигналы timeChanged (<QTime>), dateChanged (<QDate>) и dateTimeChanged (<QDateTime>). Внутри обработчиков через параметр доступно новое значение.
Классы QDateEdit (поле для ввода даты) и QTimeEdit (поле для ввода времени) созданы для удобства и отличаются от класса QDateTimeEdit только форматом отображаемых данных. Эти классы наследуют методы базовых классов и не добавляют никаких своих методов.
На следующем шаге мы рассмотрим календарь.