为什么 QCalendarWidget.setDateTextFormat(QDate(), ...) 不起作用?
我正在使用 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 isnull
, all date formats are cleared.
QDate::QDate()
Constructs anull
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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
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 defaultQTextCharFormat
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.