PyQt5 – 当单选按钮被按下时为其设置皮肤

  • Post category:Python

下面我将根据需求讲解Python的PyQt5库在单选按钮被按下时如何为其设置皮肤的完整使用攻略。

1. 安装PyQt5库

首先,我们需要安装PyQt5库。PyQt5是Qt官方支持的Python库,可以用于创建GUI应用程序。安装PyQt5库可以使用pip命令,具体的安装方式如下:

pip install pyqt5

2. 新建一个PyQt5窗口

接下来,我们需要新建一个PyQt5窗口,用于承载单选按钮控件和样式。示例代码如下:

import sys
from PyQt5.QtWidgets import QApplication, QWidget, QHBoxLayout, QRadioButton


class Example(QWidget):

    def __init__(self):
        super().__init__()

        self.initUI()

    def initUI(self):

        hbox = QHBoxLayout()

        rbtn1 = QRadioButton('Button 1')
        hbox.addWidget(rbtn1)

        rbtn2 = QRadioButton('Button 2')
        hbox.addWidget(rbtn2)

        self.setLayout(hbox)

        self.setGeometry(300, 300, 350, 250)
        self.setWindowTitle('PyQt5 - Radio Button Example')
        self.show()


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

上述代码中,我们新建了一个继承自QWidget的Example类,用于承载单选按钮控件。在Example类中,我们通过QHBoxLayout布局管理器,分别创建了rbtn1和rbtn2两个单选按钮控件,并将它们添加到布局中。

3. 为单选按钮设置样式

最后,我们需要为单选按钮控件设置样式。我们可以通过QSS(Qt样式表)来实现。示例代码如下:

...
    def initUI(self):

        hbox = QHBoxLayout()

        rbtn1 = QRadioButton('Button 1')
        rbtn1.setStyleSheet('QRadioButton {background-color: red; color: white;}')
        hbox.addWidget(rbtn1)

        rbtn2 = QRadioButton('Button 2')
        rbtn2.setStyleSheet('QRadioButton {background-color: blue; color: white;}')
        hbox.addWidget(rbtn2)

        self.setLayout(hbox)

        self.setGeometry(300, 300, 350, 250)
        self.setWindowTitle('PyQt5 - Radio Button Example')
        self.show()
...

上述代码中,我们通过setStyleSheet方法来为单选按钮控件设置了红色和蓝色的背景颜色,并且设置了白色的文字颜色。

我们还可以使用外部的QSS文件,示例代码如下:

...
    def initUI(self):

        hbox = QHBoxLayout()

        rbtn1 = QRadioButton('Button 1')
        rbtn1.setStyleSheet(open('style.qss').read())
        hbox.addWidget(rbtn1)

        rbtn2 = QRadioButton('Button 2')
        rbtn2.setStyleSheet(open('style.qss').read())
        hbox.addWidget(rbtn2)

        self.setLayout(hbox)

        self.setGeometry(300, 300, 350, 250)
        self.setWindowTitle('PyQt5 - Radio Button Example')
        self.show()
...

上述代码中,我们使用open方法打开了名为style.qss的外部QSS文件,并通过setStyleSheet方法设置为单选按钮控件的样式。

4. 总结

至此,我们就讲解了Python的PyQt5库在单选按钮被按下时如何为其设置皮肤的完整使用攻略。通过上述步骤,你可以轻松实现为单选按钮设置皮肤的操作,并且可以实现自定义的皮肤样式,并不断拓展这些样式。