c++ - QCalendarWidget 选择颜色

标签 c++ qt calendar selection

我有一个 QCalendarWidget 并且一个月中的某些天是彩色的(例如假期是红色的)。当我选择一个有颜色的日子时,选择会清除颜色,我看不到它的原始颜色。但是当我取消选择那一天时 - 颜色又回来了。请看图片。

enter image description here

enter image description here

有没有办法即使选择了一天也能保持颜色?我知道有一种方法可以通过委托(delegate)为 QTableView 执行此操作,但我找不到用于 QCalendarWidget 的类似方法。有任何想法吗?感谢您的宝贵时间。

最佳答案

您可以像这样访问日历小部件的内部 QTableView 对象:

QCalendarWidget *c = new QCalendarWidget;

QTableView *view = c->findChild<QTableView*>("qt_calendar_calendarview");
if (view)
{
    view->setItemDelegate(new MySuperCalendarDelegate);
}

然后您可以使用自定义委托(delegate)来设置适当的背景色和前景色。

你也可以查看my previous answerQCalendarWidget 样式上。

关于c++ - QCalendarWidget 选择颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29643063/

相关文章:

c++ - Qt Linguist 是否提供向可编辑的 .ts 文件添加新条目的功能?

r - 如何访问 timeDate 中的 "correct"假期

java - 创建 Java 日历,基本参数

c++ - 模板化静态成员函数是如何解析的?

c++ - 使用 OpenCV 从 FLIR 相机中检索帧

c++ - 用于 C++ (MFC) 的 SQLite OLE DB 驱动程序

c++ - 使用 PostgreSQL 编译静态 Qt 5.10.0 时出错

c++ - QT_NO_DEBUG 是否会导致 NDEBUG 的定义?

java - 如何在日期选择器编辑文本时永久隐藏键盘

c++ - 为什么 C++ 下溢/溢出行为被视为未定义?