在Qt中,特别是QCalendarWidget,默认情况下禁用(不可点击)日期具有灰色背景。但是,我需要使用QSS文件设置样式。
我的问题是我无法在Qt API中找到该属性。例如,用于选择的项目通常可以这样设置
QAbstractItemView {
color:#444;
alternate-background-color: #eee;
selection-background-color: #0F4A8C;
selection-color:#fff;
}
有任何建议我如何设置禁用项目的背景颜色?
答案 0 :(得分:0)
这可能有用。
QAbstractItemView :disabled {
color:#444;
alternate-background-color: #eee;
selection-background-color: #0F4A8C;
selection-color:#fff;
}
答案 1 :(得分:0)
显然,对于超出范围的日期,您无法设置它们的样式,您需要覆盖QCalendar的paintCell(painter, rect, date)
函数,如下所示:
class CustomCalendarWidget(QtGui.QCalendarWidget):
""" Calendar widget which overwrites the out of date drawing """
def paintCell(self, painter, rect, date):
if not self.minimumDate() <= date <= self.maximumDate():
painter.setBrush(QtGui.QBrush(Qt.lightGray))
painter.setPen(QtGui.QPen(Qt.lightGray))
painter.drawRect(rect)
painter.setPen(QtGui.QPen(Qt.gray))
painter.drawText(rect, Qt.AlignHCenter | Qt.AlignVCenter, str(date.day()))
else:
super(CustomCalendarWidget, self).paintCell(painter, rect, date)