QDateEdit - нарисовать ячейку calendarPopup
Я создаю пользовательские формы и компоненты пользовательского интерфейса с помощью Qt Designer и использую интегрированный инструмент сборки Qt uic, чтобы генерировать для них код при сборке приложения. Сгенерированный код содержит объект пользовательского интерфейса формы.
У меня есть QDockWidget с QDateEdit, я хочу нарисовать ячейки некоторой даты:
Я хочу сделать что-то вроде этого:
date_to = self.dockwidget.findChild(QDateEdit, "date_to")
painter = QPainter()
painter.fillRect(QRect(25, 25, 25, 25), Qt.red)
date_to.calendarWidget().paintCell(painter, QRect(25, 25, 25, 25), QDate(2018, 8, 2))
Как использовать paintCell в этом случае
Виртуальная функция:
def paintCell (художник, прямоугольник, дата)
1 ответ
Решение
Вот решение, если кому-то еще это понадобится:
QCalendarWidget.setDateTextFormat (QDate, QTextCharFormat)
format = QTextCharFormat()
format.setBackground(Qt.yellow)
date_to = self.dockwidget.findChild(QDateEdit, "date_to")
date_to.calendarWidget().setDateTextFormat(QDate(2019, 2, 2),format)
Результат: