gpt4 book ai didi

c++ - QCalendarWidget - 如何禁用日期

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:03:19 25 4
gpt4 key购买 nike

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

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

感谢阅读:)

最佳答案

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

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

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

关于c++ - QCalendarWidget - 如何禁用日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17806659/

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