📅  最后修改于: 2023-12-03 15:33:54.553000             🧑  作者: Mango
在 PyQt5 中,我们可以通过鼠标悬停事件来更改复选框的背景颜色。以下是一个示例程序,可以演示如何在鼠标悬停时更改复选框的背景颜色。
import sys
from PyQt5.QtCore import Qt
from PyQt5.QtWidgets import QApplication, QCheckBox, QWidget
class Example(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
cb = QCheckBox('Show title', self)
cb.move(20, 20)
cb.toggle()
cb.stateChanged.connect(self.changeTitle)
self.setGeometry(300, 300, 250, 150)
self.setWindowTitle('CheckBox')
self.show()
def changeTitle(self, state):
if state == Qt.Checked:
self.setStyleSheet("QCheckBox:hover { background-color: yellow }")
else:
self.setStyleSheet("QCheckBox:hover { background-color: white }")
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())
在上面的代码中,我们创建了一个名为 QCheckBox
的复选框。在初始化函数中,我们通过 toggle
方法将其设置为选中状态,并将其移动到窗口上(20, 20)的位置。我们还将其 stateChanged
信号连接到了 changeTitle
槽函数。
当复选框的状态改变时,changeTitle
槽函数将被调用。如果复选框被选中,我们将通过 setStyleSheet
方法来更改复选框的 CSS 样式。具体来说,我们将 QCheckBox:hover
的背景颜色更改为黄色。如果复选框未被选中,则将 QCheckBox:hover
的背景颜色更改为白色。
在 changeTitle
槽函数中,我们使用了 state
参数,它包含复选框的新状态。如果该参数的值为 Qt.Checked
,则表示复选框被选中。
在这个示例程序中,我们学习了如何在 PyQt5 中更改复选框的背景颜色。我们通过鼠标悬停事件来实现这一目标,并使用 QCheckBox:hover
的 CSS 样式来更改复选框的背景颜色。