📌  相关文章
📜  PyQt5 – 鼠标悬停时选中单选按钮指示器的背景图像(1)

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

PyQt5 – 鼠标悬停时选中单选按钮指示器的背景图像

大多数图形用户界面(GUI)应用程序都会使用单选按钮(Radio Button)来实现选项选择。PyQt5是一个功能强大的Python库,可以用于创建跨平台的GUI应用程序。本文将介绍如何在PyQt5中实现当鼠标悬停在单选按钮上时改变指示器的背景图像。

准备工作

要运行以下代码,需要确保已在系统上安装了PyQt5库。可以使用pip命令进行安装:

pip install pyqt5
示例代码
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout, QRadioButton
from PyQt5.QtCore import Qt, QTimer

class RadioButtonWidget(QWidget):
    def __init__(self):
        super().__init__()

        self.initUI()

    def initUI(self):
        self.setWindowTitle('RadioButton Demo')

        layout = QVBoxLayout()

        self.radioButton1 = QRadioButton('Option 1')
        self.radioButton1.setObjectName('radioButton')
        self.radioButton1.setAutoExclusive(True)
        self.radioButton1.toggled.connect(self.onRadioButtonToggled)

        self.radioButton2 = QRadioButton('Option 2')
        self.radioButton2.setObjectName('radioButton')
        self.radioButton2.setAutoExclusive(True)
        self.radioButton2.toggled.connect(self.onRadioButtonToggled)

        layout.addWidget(self.radioButton1)
        layout.addWidget(self.radioButton2)

        self.setLayout(layout)

        self.setStyleSheet("""
            QRadioButton#radioButton::indicator {
                width: 20px;
                height: 20px;
                border-radius: 10px;
            }
            QRadioButton#radioButton::indicator:hover {
                background-color: rgba(255, 0, 0, 0.5);
            }
        """)

    def onRadioButtonToggled(self):
        pass

if __name__ == '__main__':
    app = QApplication(sys.argv)

    widget = RadioButtonWidget()
    widget.show()

    sys.exit(app.exec_())
代码解析

以上代码创建了一个简单的窗口,其中包含两个单选按钮(Option 1和Option 2)。每个单选按钮都有一个唯一的对象名称(radioButton),用于在样式表中指定样式。

在样式表中,我们使用了两个选择器:QRadioButton#radioButton::indicatorQRadioButton#radioButton::indicator:hover。第一个选择器用于为单选按钮指示器定义默认样式,第二个选择器用于在鼠标悬停时改变指示器的背景颜色。

在鼠标悬停时,样式表会将background-color属性设置为半透明的红色。可以根据需要调整颜色或添加其他样式属性。

运行示例

保存以上代码到一个Python文件(例如radio_button_demo.py),然后在终端中运行它:

python radio_button_demo.py

应用程序窗口将打开,并显示两个单选按钮。当将鼠标悬停在任何一个单选按钮上时,指示器的背景颜色将变为半透明的红色。

希望本文对使用PyQt5实现鼠标悬停时更改单选按钮指示器的背景图像有所帮助。如有任何疑问,请随时提问。