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

问题描述 投票:2回答:1

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

知道我需要改变什么来使它工作吗?

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

qt pyqt
1个回答
2
投票

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.