Кастомный QDateEdit виджет на PyQt

Я пытаюсь создать виджет QDateEdit в PyQt5 с таким же календарём, как на прикреплённом изображении.

Пожалуйста, подскажите мне, как это можно сделать? Я буду очень благодарен!

[Скрин виджета]1


Ответы (1 шт):

Автор решения: S. Nick

calendarPopup : bool

Это свойство содержит текущий режим отображения всплывающего окна календаря.

Всплывающее окно календаря будет отображаться при нажатии кнопки со стрелкой. Это свойство действительно только при наличии допустимого формата отображения даты.

import sys
from PyQt5 import QtCore, QtWidgets


class DateEdit(QtWidgets.QDateEdit):
    def __init__(self, parent=None):
        super().__init__(parent, calendarPopup=True)
        
        self._today_button = QtWidgets.QPushButton(self.tr("Today"))
        self._today_button.clicked.connect(self._update_today)
        self.setDateTime(QtCore.QDateTime.currentDateTime())
        self.setDisplayFormat('d MMM yyyy')
                
        self.calendarWidget().layout().addWidget(self._today_button)

    @QtCore.pyqtSlot()
    def _update_today(self):
        self._today_button.clearFocus()
        today = QtCore.QDate.currentDate()
        self.calendarWidget().setSelectedDate(today)


if __name__ == "__main__":
    app = QtWidgets.QApplication(sys.argv)
    w = DateEdit()
    w.show()
    sys.exit(app.exec_())

введите сюда описание изображения

→ Ссылка