当鼠标悬停在未勾选的复选框上时,PyQt5可以更改其背景色。这是通过设置QCheckBox的样式表(Stylesheet)来完成的。
以下是实现此目的的步骤:
步骤1:导入PyQt5模块
from PyQt5 import QtWidgets, QtGui, QtCore
步骤2:创建应用程序
app = QtWidgets.QApplication([])
步骤3:创建QCheckBox控件并设置样式表
checkbox = QtWidgets.QCheckBox("Checkbox")
checkbox.setStyleSheet(
"QCheckBox:hover:!checked { background-color : green }")
在上面的样式表中,“:hover”表示当鼠标悬停在控件上时,“:!checked”表示当复选框未被选中时,设置背景色为绿色。您可以根据需要更改样式表以匹配您的应用程序。
步骤4:显示控件
checkbox.show()
下面是两个示例说明:
示例1:创建多个复选框
# Create checkboxes
checkbox1 = QtWidgets.QCheckBox("Checkbox1")
checkbox2 = QtWidgets.QCheckBox("Checkbox2")
checkbox3 = QtWidgets.QCheckBox("Checkbox3")
# Set stylesheet
checkbox1.setStyleSheet(
"QCheckBox:hover:!checked { background-color : green }")
checkbox2.setStyleSheet(
"QCheckBox:hover:!checked { background-color : red }")
checkbox3.setStyleSheet(
"QCheckBox:hover:!checked { background-color : blue }")
# Layout the checkboxes
layout = QtWidgets.QVBoxLayout()
layout.addWidget(checkbox1)
layout.addWidget(checkbox2)
layout.addWidget(checkbox3)
# Create main window and show it
window = QtWidgets.QWidget()
window.setLayout(layout)
window.show()
在这个示例中,我们创建了三个复选框,并对每个复选框设置了不同的悬停样式。我们还使用垂直布局将复选框放置在主窗口中。
示例2:更改已选择复选框的背景色
checkbox = QtWidgets.QCheckBox("Checkbox")
checkbox.setStyleSheet(
"QCheckBox:hover:!checked { background-color : green }"
"QCheckBox:checked { background-color : red }")
在这个示例中,我们在样式表中添加了一个新的样式,“checked”,以更改已选择复选框的背景色。这里我们将其设置为红色,以与未选择时的绿色形成对比。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:PyQt5 – 悬停时未勾选的复选框背景 - Python技术站