我正在尝试创建一个日历,可以在点击时切换日期的颜色。如果当前背景为白色,则将其设置为绿色。如果它是绿色的,就把它设置成红色。如果它是红色的,就把它调回白色。但是我不知道如何得到选择的背景色。谁能帮忙吗?在
样式表被设置为去掉默认的选择颜色,它阻止了我想要显示的颜色。在
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_())
与使用
dateTextFormat(...)
设置背景颜色相同,可以使用返回QBrush(...)
的background()
获取颜色,然后使用其color(…)方法。默认情况下,颜色为黑色,而不是观察到的白色。在相关问题 更多 >
编程相关推荐