Кастомный 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_())
