📅  最后修改于: 2023-12-03 15:33:54.826000             🧑  作者: Mango
本文介绍了如何在 PyQT5 程序中使用 CSS 样式表来更改复选框(QCheckBox)的背景颜色。
在创建复选框时,通过 setStyleSheet 方法将 CSS 样式表应用到复选框上。
checkBox = QCheckBox('Check box', self)
checkBox.setStyleSheet("QCheckBox::indicator:checked {background-color:red}; QCheckBox::indicator:unchecked {background-color:green};")
在样式表中,通过伪状态设置背景颜色,上述代码中的 QCheckBox::indicator:checked
表示复选框被选中时的伪状态,:unchecked
表示复选框未被选中时的伪状态。可以通过这两个伪状态属性来设置复选框选中/未选中时的背景颜色。
下面是一个样例程序,它创建了一个带有复选框的窗口,在鼠标悬停时更改复选框的中间背景颜色。
from PyQt5.QtWidgets import QWidget, QCheckBox, QApplication
from PyQt5.QtCore import Qt
class Example(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.setGeometry(300, 300, 300, 220)
self.setWindowTitle('PyQt5 – 鼠标悬停时的中间复选框背景')
checkBox = QCheckBox('Check box', self)
checkBox.move(20, 20)
checkBox.setStyleSheet("QCheckBox::indicator:checked {background-color:red}; QCheckBox::indicator:unchecked {background-color:green};")
self.show()
def enterEvent(self, event):
# 鼠标进入时更改背景颜色
self.setStyleSheet("QCheckBox::indicator:checked {background-color:yellow}; QCheckBox::indicator:unchecked {background-color:blue};")
def leaveEvent(self, event):
# 鼠标离开时恢复原来的样式
self.setStyleSheet("")
if __name__ == '__main__':
import sys
app = QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())
运行程序后,当鼠标移动到窗口中的复选框上时,复选框的背景颜色会由原本的绿色/红色更改为蓝色/黄色。
QCheckBox::indicator:checked
。