为什么QCalendarWidget.setDateTextFormat(QDate(),...)无效?

时间:2009-04-08 09:19:17

标签: qt pyqt

我正在使用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

知道我需要改变什么以使其有效吗?

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

1 个答案:

答案 0 :(得分:2)

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

我认为这是QCalendar设置日历默认QTextCharFormat的方式。 QCalendar::dateTextFormat()正在返回一张包含所有特殊格式的地图,并且(我认为)是默认格式。

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