PyQt5是一个Python的GUI图形界面开发库。其中,鼠标悬停时为中间的复选框设置皮肤是其中一个常用的功能。下面详细讲解Python的“PyQt5 – 鼠标悬停时为中间的复选框设置皮肤”的完整使用攻略。
1. 安装PyQt5
使用PyQt5之前,需要先安装PyQt5模块。可通过pip
命令进行安装,具体操作代码如下:
pip install PyQt5
2. 创建窗口
创建一个窗口并添加一个复选框。用来实现复选框的皮肤效果。代码如下:
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QCheckBox
class Example(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
cb = QCheckBox('Checkbox', self)
cb.move(20, 20)
cb.toggle()
self.setGeometry(300, 300, 250, 150)
self.setWindowTitle('CheckBox')
self.show()
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())
3. 添加鼠标悬浮事件
当鼠标悬浮在复选框上时,使用styleSheet修改复选框的背景色,同时在鼠标离开时还原为原来的背景色。
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QCheckBox
class Example(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
cb = QCheckBox('Checkbox', self)
cb.move(20, 20)
cb.toggle()
cb.setStyleSheet("QCheckBox:hover { background-color: #F0FFFF; }")
self.setGeometry(300, 300, 250, 150)
self.setWindowTitle('CheckBox')
self.show()
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())
4. 示例说明
这里提供两个示例说明:
- 示例一:在
QCheckBox
外面添加QLabel
,鼠标悬浮在QLabel
上时改变QCheckBox
的背景色。代码如下:
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QCheckBox, QLabel
class Example(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
lb = QLabel('Label', self)
lb.move(20, 20)
cb = QCheckBox('Checkbox', self)
cb.move(20, 40)
cb.toggle()
lb.setStyleSheet("QLabel:hover + QCheckBox { background-color: #F0FFFF; }")
self.setGeometry(300, 300, 250, 150)
self.setWindowTitle('CheckBox')
self.show()
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())
- 示例二:改变复选框的文字颜色。代码如下:
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QCheckBox
class Example(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
cb = QCheckBox('Checkbox', self)
cb.move(20, 20)
cb.toggle()
cb.setStyleSheet("""
QCheckBox { color: red; }
QCheckBox:hover { background-color: #F0FFFF; color: blue; }
""")
self.setGeometry(300, 300, 250, 150)
self.setWindowTitle('CheckBox')
self.show()
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())
以上就是Python的“PyQt5 – 鼠标悬停时为中间的复选框设置皮肤”的完整使用攻略。