📌  相关文章
📜  PyQt5 – 鼠标悬停时将皮肤设置为 CheckBox(1)

📅  最后修改于: 2023-12-03 14:45:51.260000             🧑  作者: Mango

PyQt5 – 鼠标悬停时将皮肤设置为 CheckBox

简介

本文将介绍如何使用 PyQt5 创建一个简单的界面,当鼠标悬停在 CheckBox 上时,将皮肤设置为 CheckBox 的状态。

程序演示

首先,我们通过以下代码创建一个简单的窗口:

import sys
from PyQt5.QtWidgets import QApplication, QWidget

class App(QWidget):

    def __init__(self):
        super().__init__()
        self.title = 'PyQt5 - Mouse Hover Skin Change'
        self.left = 200
        self.top = 200
        self.width = 300
        self.height = 200
        self.initUI()

    def initUI(self):
        self.setWindowTitle(self.title)
        self.setGeometry(self.left, self.top, self.width, self.height)

if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = App()
    ex.show()
    sys.exit(app.exec_())

现在,我们需要添加一个 CheckBox 到窗口中,并设置鼠标事件来改变皮肤。

import sys
from PyQt5.QtWidgets import QApplication, QWidget, QCheckBox
from PyQt5.QtGui import QIcon

class App(QWidget):

    def __init__(self):
        super().__init__()
        self.title = 'PyQt5 - Mouse Hover Skin Change'
        self.left = 200
        self.top = 200
        self.width = 300
        self.height = 200
        self.initUI()

    def initUI(self):
        self.setWindowTitle(self.title)
        self.setGeometry(self.left, self.top, self.width, self.height)

        # 创建一个 CheckBox
        checkbox = QCheckBox('Change Skin on Hover', self)
        checkbox.move(20, 20)
        checkbox.resize(250, 30)
        checkbox.setStyleSheet('QCheckBox::indicator:hover { border: 2px solid green; }')
        checkbox.show()

if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = App()
    ex.show()
    sys.exit(app.exec_())

现在,我们已经成功添加了一个 CheckBox,并在鼠标悬停时改变了 CheckBox 的皮肤。如果你将鼠标悬停在 CheckBox 上,你会看到边框变成了绿色。

代码解释

首先,我们需要将 QCheckBox 添加到窗口中。

checkbox = QCheckBox('Change Skin on Hover', self)
checkbox.move(20, 20)
checkbox.resize(250, 30)

这里,我们创建了一个名字为 'Change Skin on Hover' 的 CheckBox 并将其添加到了窗口中。我们同时设置了它的位置和大小。

checkbox.setStyleSheet('QCheckBox::indicator:hover { border: 2px solid green; }')

接下来,我们设置了一个样式表,以在鼠标悬停时改变 CheckBox 的皮肤。

'QCheckBox::indicator:hover' 表示鼠标悬停在 CheckBox 的选项框上时,要应用的样式。我们在这里设置了一个边框,边框的宽度为 2 像素,颜色为绿色。

结论

在本文中,我们学习了如何使用 PyQt5 创建一个简单的窗口,并添加一个 CheckBox 到窗口中。我们还学习了如何使用样式表来改变 CheckBox 的皮肤,以响应鼠标悬停事件。