QCalendarWidget - 读取所选日期的背景颜色

我正在尝试创建一个可以在单击时切换日期颜色的日历。如果当前背景为白色,请将其设置为绿色。如果是绿色,则将其设置为红色。如果是红色,则将其设置回白色。但是我不知道如何获得选择背景颜色。有人可以帮忙吗?


样式表被设置为摆脱默认选择颜色,它阻止了我想要显示的颜色。


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_())


SMILET
浏览 661回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python