gpt4 book ai didi

Qt QCalendarWidget QSS 样式

转载 作者:行者123 更新时间:2023-12-01 03:12:20 28 4
gpt4 key购买 nike

我知道不支持 QCalendarWidget QSS 样式,但有谁知道更改 1 部分颜色的一些解决方法QCalendarWidget 的 2? (1 部分为浅蓝色,2 部分为白色)

enter image description here

谢谢!

最佳答案

我检查了QCalendarWidget source code并找到了解决方案。

QCalendarWidget 内部有一个模型和一个显示日期的 View 。 QCalendarModel 有一个 formatForCell(int, int) 函数,它返回给定单元格的 QTextCharFormat。返回格式是合并 QCalendarView 调色板数据的结果,当天的格式(星期六和星期日以红色显示)和当前日期的格式,可以使用 QCalendarWidget::设置: setDateTextFormat 函数。

实际上一个item的背景是:

format.setBackground(pal.brush(cg, header ? QPalette::AlternateBase : QPalette::Base));
  • palQCalendarView的调色板;
  • cg 是一个 color group ;
  • header 当当前单元格是标题单元格时为真(示例中的第 1 部分)

因此,您只需将自定义调色板设置为内部 QCalendarView。在源代码中我们可以发现 QCalendarView 对象有一个我们可以使用的名称“qt_calendar_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 样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14668344/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com