Reputation: 3164
I want to customize QCalendarWidget
and I can't change the weekends colors for the disabled state. This is how it looks right now:
I would like to gray out the red. I know that you can set the weekends colors with:
QTextCharFormat weekendFormat;
weekendFormat.setForeground(QBrush(Qt::green, Qt::SolidPattern));
m_ui->calendarWidget->setWeekdayTextFormat(Qt::Saturday, weekendFormat);
m_ui->calendarWidget->setWeekdayTextFormat(Qt::Sunday, weekendFormat);
but this doesn't affect the disabled state. How can I affect the disabled state and set different disabled colors for the weekend?
Thanks!
Upvotes: 1
Views: 1499
Reputation: 9853
If you want to get different colors for enabled and disabled states, you can subclass and reimplement the change event handler:
void MyCalendar::changeEvent(QEvent *event)
{
QCalendarWidget::changeEvent(event);
if (event->type() == QEvent::EnabledChange)
{
QColor color;
if (isEnabled())
{
color = Qt::blue;
}
else
{
color = Qt::yellow;
}
QTextCharFormat weekendFormat;
weekendFormat.setForeground(QBrush(color, Qt::SolidPattern));
setWeekdayTextFormat(Qt::Saturday, weekendFormat);
setWeekdayTextFormat(Qt::Sunday, weekendFormat);
}
}
Upvotes: 1