我正在使用PyQt 4.4.3。
我有这段代码,应该清除QCalendarWidget
中的所有格式:
cal.setDateTextFormat(QDate(), QDateTextFormat())
根据the documentation,这应该有效:
QCalendarWidget::setDateTextFormat(QDate &date, QTextCharFormat &format)
如果日期为null
,则会清除所有日期格式。
QDate::QDate()
构造一个null
日期。空日期无效。
我尝试过像这样缩小问题:
QDate().isNull()
True
cal.dateTextFormat()
{PyQt4.QtCore.QDate(-4713, 1, 1): PyQt4.QtGui.QTextCharFOrmat object}
显然,QDate()
被解释为在-4713年而不是null
。
知道我需要改变什么以使其有效吗?
编辑:问题是,日历未使用此方法重置。
答案 0 :(得分:2)
QDate(-4713,1,1)与null相同,
我认为这是QCalendar
设置日历默认QTextCharFormat
的方式。 QCalendar::dateTextFormat()
正在返回一张包含所有特殊格式的地图,并且(我认为)是默认格式。
或者可能是一个错误,通知巨魔你的问题。