Qt QCalendarWidget QSS样式 [英] Qt QCalendarWidget QSS Styling
本文介绍了Qt QCalendarWidget QSS样式的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
QCalendarWidget
QSS
样式,但有谁知道更改QCalendarWidget
和2
部分的颜色的解决方法吗?(1
部分为浅蓝色,2
部分为白色)
谢谢!
推荐答案
我已经检查了QCalendarWidget
source code并找到了解决方案。
QCalendarWidget
内部有一个模型和一个显示日期的视图。QCalendarModel
有一个formatForCell(int, int)
函数,它为给定的单元格返回QTextCharFormat
。返回格式是合并QCalendarView
调色板数据的结果,返回的是当天的格式(周六和周日以红色显示)和当前日期的格式,可以通过QCalendarWidget::setDateTextFormat
函数设置。
项目的实际背景为:
format.setBackground(pal.brush(cg, header ? QPalette::AlternateBase : QPalette::Base));
pal
是QCalendarView
的调色板;cg
是color group;header
当当前单元格为标题单元格时(在您的示例中为第1节)
QCalendarView
。在源代码中,我们可以发现QCalendarView
对象有一个名为"qt_日历_calendarview"的名称,我们可以使用它:
QCalendarWidget *c = new QCalendarWidget;
QTableView *view = c->findChild<QTableView*>("qt_calendar_calendarview");
if (view)
{
QPalette pal = view->palette();
pal.setColor(QPalette::Base, Qt::red);
pal.setColor(QPalette::AlternateBase, Qt::green);
view->setPalette(pal);
}
在我的示例中,第1节将是红色的,第2节将是绿色的。
此外,您还可以为调色板的每个color group设置颜色,以便在小工具处于活动或非活动状态时获得您喜欢的小工具。
这篇关于Qt QCalendarWidget QSS样式的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文