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)

Результат:

Другие вопросы по тегам