首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >QCalendarWidget -如何禁用日期

QCalendarWidget -如何禁用日期
EN

Stack Overflow用户
提问于 2013-07-23 17:41:26
回答 1查看 1.2K关注 0票数 4

我正在尝试使用启用或禁用日期(不仅是范围日期)的QCalendarWidget,但它看起来不可能(https://bugreports.qt.io/browse/QTBUG-198)。

您是否知道是否可以使用paintEvent方法(或其他方法)来做到这一点?

感谢您的阅读:)

EN

回答 1

Stack Overflow用户

发布于 2013-07-24 18:15:52

我做了一些研究。日历小部件包含一个具有常规模型(QCalendarModel)的常规QTableView子类(QCalendarView)。我的尝试是为视图添加一个代理模型,并更改data()flags()函数以返回要禁用的日期的禁用状态。但是我需要知道哪个日期显示在单元格上。有一个QCalendarModel::dateForCell方法可以做到这一点,但它不能从代码中访问。它相当复杂,并且依赖于QCalendarModel的实现。

所以我认为这几乎是不可能的。我看到的唯一方法是将QCalendarWidget源代码复制到您的项目中,并重命名类,以避免现有Qt类的冲突。然后,您可以更改实现。在任何使用了最小和最大日期的地方(例如,在QCalendarModel::flags函数中),您应该使用您的启用/禁用类列表来替换它。

如果您在我的尝试中发现了一些有用的东西,我已经发布了代码here。代理模型被接受,并且所有单元格的背景都是绿色的。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17806659

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档