可以使用QSS(Qt样式表)来设置未选中的复选框指标(checkbox indicator)在点击时的背景颜色。在QSS中,使用::indicator:unchecked:hover
选择器来选择未选中的复选框指标在悬停时的样式。
以下是Python中使用PyQt5设置未选中的复选框指标在点击时的背景颜色的完整攻略:
- 导入必要的模块并创建复选框(checkbox)对象
from PyQt5.QtWidgets import QApplication, QCheckBox
app = QApplication([])
checkbox = QCheckBox("Example")
- 使用QSS设置未选中的复选框指标在点击时的背景颜色
unchecked_color = "#cccccc"
unchecked_hover_color = "#dddddd"
checkbox.setStyleSheet("""
QCheckBox::indicator:unchecked {
background-color: %s;
}
QCheckBox::indicator:unchecked:hover {
background-color: %s;
}
""" % (unchecked_color, unchecked_hover_color))
在上面的示例中,我们使用CSS格式来设置QSS。首先,我们定义了两个变量来存储未选中时和悬停时的颜色。然后,我们使用两个选择器QCheckBox::indicator:unchecked
和QCheckBox::indicator:unchecked:hover
来设置未选中的复选框指标在点击时和悬停时的背景颜色。
- 显示复选框并启动应用程序。
checkbox.show()
app.exec_()
以下是另一个示例,我们将创建多个复选框,然后指定每个复选框的不同颜色:
from PyQt5.QtWidgets import QApplication, QWidget, QHBoxLayout, QCheckBox
app = QApplication([])
colors = {
"example1": {"unchecked": "#cccccc", "unchecked_hover": "#dddddd"},
"example2": {"unchecked": "#eeeeee", "unchecked_hover": "#ffffff"},
"example3": {"unchecked": "#ffcccc", "unchecked_hover": "#ffdddd"}
}
# create a main widget
widget = QWidget()
# create horizontal layout for checkboxes
layout = QHBoxLayout()
for text, color in colors.items():
checkbox = QCheckBox(text)
# set checkbox color with QSS
checkbox.setStyleSheet("""
QCheckBox::indicator:unchecked {
background-color: %s;
}
QCheckBox::indicator:unchecked:hover {
background-color: %s;
}
""" % (color["unchecked"], color["unchecked_hover"]))
layout.addWidget(checkbox)
widget.setLayout(layout)
widget.show()
app.exec_()
在上面的示例中,我们创建了一个包含多个复选框的水平布局。对于每个复选框,我们从字典中获取其颜色并使用QSS设置样式。最后,我们将布局设置为主部件的布局并显示应用程序。