为什么 QCalendarWidget.setDateTextFormat(QDate(), ...) 不起作用?

发布于 2024-07-16 08:59:20 字数 872 浏览 3 评论 0原文

我正在使用 PyQt 4.4.3。

我有这段代码,它应该清除 QCalendarWidget 中的所有格式:

cal.setDateTextFormat(QDate(), QDateTextFormat())

根据 文档这应该有效:

QCalendarWidget::setDateTextFormat(QDate &日期, QTextCharFormat &format)
如果日期为null,则清除所有日期格式。

QDate::QDate()
构造一个 null 日期。 空日期无效。

我尝试像这样缩小问题范围:

QDate().isNull()
True
cal.dateTextFormat()
{PyQt4.QtCore.QDate(-4713, 1, 1): PyQt4.QtGui.QTextCharFOrmat object}

显然,QDate() 被解释为位于 -4713 年,而不是 null

知道我需要改变什么才能让它发挥作用吗?

编辑:问题是,日历不会使用此方法重置。

I'm using PyQt 4.4.3.

I've got this code, which should clear all formats in the QCalendarWidget:

cal.setDateTextFormat(QDate(), QDateTextFormat())

According to the documentation this should work:

QCalendarWidget::setDateTextFormat(QDate &date, QTextCharFormat &format)
If date is null, all date formats are cleared.

QDate::QDate()
Constructs a null date. Null dates are invalid.

I've tried narrowing down the problem like this:

QDate().isNull()
True
cal.dateTextFormat()
{PyQt4.QtCore.QDate(-4713, 1, 1): PyQt4.QtGui.QTextCharFOrmat object}

Obviously, QDate() is interpreted as being in the year -4713 instead of being null.

Any idea what I need to change to make it work?

Edit: The problem is, that the calendar isn't reset using this method.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

扎心 2024-07-23 08:59:20

QDate(-4713, 1, 1) 与 null 相同,

我认为这是 QCalendar 中设置日历默认 QTextCharFormat 的方式。 QCalendar::dateTextFormat() 返回具有所有特殊格式和(我认为)默认格式的地图。

或者可能是一个错误,请通知巨魔您的问题。

QDate(-4713, 1, 1) is the same as null,

I think that's the way in QCalendar to set the default QTextCharFormat of the calendar. QCalendar::dateTextFormat() is returning a map with all special formats and (I think) the default format.

Or could be a bug, notify to the trolls your problem.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文