Я пытаюсь создать календарь, который бы переключал цвет даты при клике. Если текущий фон белый, установите его на зеленый. Если он зеленый, установите его на красный. Если он красный, установите его обратно на белый. Однако я не знаю, как получить выделение цвета фона. Может кто-нибудь помочь, пожалуйста?
Таблица стилей была настроена так, чтобы избавиться от того цвета выделения по умолчанию, который блокирует цвет, который я хочу показать.
import sys
from PySide.QtGui import (QCalendarWidget, QApplication, QBrush)
from PySide.QtCore import Qt
class UserCalendar(QCalendarWidget):
def __init__(self, parent=None):
super(UserCalendar, self).__init__(parent)
style = 'QTableView{selection-background-color: white;' \
'selection-color: black;}'
self.setStyleSheet(style)
self.clicked.connect(self.onClick)
def onClick(self, date):
brush = QBrush()
brush.setColor(Qt.green)
charformat = self.dateTextFormat(date)
charformat.setBackground(brush)
self.setDateTextFormat(date, charformat)
style = 'QTableView{selection-background-color: green;' \
'selection-color: black;}'
self.setStyleSheet(style)
if __name__ == '__main__':
app = QApplication(sys.argv)
cal = UserCalendar()
cal.show()
cal.raise_()
sys.exit(app.exec_())