В Qt и, в частности, в QCalendarWidget отключенные (не кликаемые) даты по умолчанию имеют серый фон. Однако мне нужно стилизовать их с помощью файла QSS.
Моя проблема в том, что я не могу найти атрибут в API Qt. Например, элементы для выбора и вообще могут быть стилизованы как таковые
QAbstractItemView {
color:#444;
alternate-background-color: #eee;
selection-background-color: #0F4A8C;
selection-color:#fff;
}
Любое предложение, как я могу установить цвет фона отключенного элемента?
Это может сработать.
QAbstractItemView :disabled {
color:#444;
alternate-background-color: #eee;
selection-background-color: #0F4A8C;
selection-color:#fff;
}
Смотрите также здесь http://doc.qt.io/qt-4.8/stylesheet-examples.html
По-видимому, для дат, которые находятся вне диапазона, вы не можете их стилизовать, и вам нужно перезаписать 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)