如何获取 QCalendarWidget 中显示的所有日期
我在我的应用程序中使用 QCalendarWidget,并且重载了 updateCells 方法,以便在满足特定条件的每个日期上放置红色背景。
我的问题是我不知道如何获取日历中显示的第一个日期(不是该月的第一个日期)和显示最后一个日期。 示例:在 2 月,显示的第一个日期是 1 月 25 日,最后显示的日期是 3 月 7 日。
QCalendarWidget 中没有任何有用的方法,我想不出一个算法。 你知道如何做到这一点吗?
I am using a QCalendarWidget in my application, and I overloaded the updateCells method to put a red background on every dates which meet certain conditions.
My problem is I don't know how to get the first date displayed in the calendar (not the first date in the month), and the last date displayed.
Example: in february, the first date displayed is january the 25th, and the last date displayed is march the 7th.
There isn't any useful method in QCalendarWidget and I can't think of an algorithm for this.
Do you have any idea how to do this ?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
由于您可以访问当前显示的月份和年份,因此可以使用 QDate: :dayOfWeek 显示内容的第一个和最后一个日期。考虑到 QCalendarWidget::firstDayOfWeek ,您应该能够决定你必须来回走多远。
As you've got access to the currently shown month and year, you can use the QDate::dayOfWeek on the first and last date of the shown contents. Taking QCalendarWidget::firstDayOfWeek into account, you aught to be able to decide how far back and forth you have to go.
QCalendarWidget类是更简单的小部件的组合,您可以查看Qt源代码以获得帮助。只需使用循环即可获取以下日期之间的所有日期:
QCalendarWidget class is a combination of more simple widgets, you can see Qt source code for help. Just use loop to get all dates between: