PyQt5 QRadioButton小工具

  • Post category:Python

下面我将详细讲解Python的“PyQt5 QRadioButton小工具”的完整使用攻略。

1. Pyqt5 QRadioButton介绍

QRadioButton(单选按钮)是 PyQt5 中的一个控件,可以用来让用户从多个选项中选择一个。选择一项后,则其它项自动被取消选择。

2. Pyqt5 QRadioButton实现

首先需要导入 PyQt5 的 QWidget 和 QRadioButton 模块,示例代码如下:

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

然后,我们可以创建一个 QWidget 窗口,并在其中添加 QRadioButton 控件,示例代码如下:

class App(QWidget):
    def __init__(self):
        super().__init__()
        self.initUI()

    def initUI(self):
        self.setWindowTitle('QRadioButton示例')

        # 创建三个单选按钮
        self.radioBtn1 = QRadioButton('选项1', self)
        self.radioBtn1.move(50, 20)

        self.radioBtn2 = QRadioButton('选项2', self)
        self.radioBtn2.move(50, 50)

        self.radioBtn3 = QRadioButton('选项3', self)
        self.radioBtn3.move(50, 80)

        # 显示窗口
        self.setGeometry(300, 300, 200, 150)
        self.show()

在上例中,我们创建了三个单选按钮,分别为 “选项1”、“选项2”和“选项3”,并通过 move() 方法设置单选按钮在窗口中的位置。

接着,我们可以通过单选按钮的 clicked 信号来监听用户的选择。以下是一个简单的示例,当用户选中选项1并单击时,在终端输出“选项1已选中”,示例代码如下:

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

class App(QWidget):
    def __init__(self):
        super().__init__()
        self.initUI()

    def initUI(self):
        self.setWindowTitle('QRadioButton示例')

        self.radioBtn1 = QRadioButton('选项1', self)
        self.radioBtn1.move(50, 20)
        self.radioBtn1.clicked.connect(self.onClick)

        self.radioBtn2 = QRadioButton('选项2', self)
        self.radioBtn2.move(50, 50)
        self.radioBtn2.clicked.connect(self.onClick)

        self.radioBtn3 = QRadioButton('选项3', self)
        self.radioBtn3.move(50, 80)
        self.radioBtn3.clicked.connect(self.onClick)

        self.setGeometry(300, 300, 200, 150)
        self.show()

    def onClick(self):
        if self.radioBtn1.isChecked():
            print('选项1已选中')
        elif self.radioBtn2.isChecked():
            print('选项2已选中')
        else:
            print('选项3已选中')

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

在上例中,我们通过 clicked 信号连接了 onClick() 方法来监听用户的选择,并通过 isChecked() 方法来判断用户选择的是哪个选项。

3. 示例说明

下面我们来看看两个具体的案例,通过它们将更好地理解 QRadioButton 的实现方式。

3.1 示例一:性别选择

假设我们有一个表单需要填写用户的性别信息,并且性别是必选项。我们可以使用 QRadioButton 来实现这个功能。

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

class App(QWidget):
    def __init__(self):
        super().__init__()
        self.initUI()

    def initUI(self):
        self.setWindowTitle('性别选择')

        # 创建单选按钮
        self.radioBtnMale = QRadioButton('男', self)
        self.radioBtnMale.move(50, 20)
        self.radioBtnMale.setChecked(True)

        self.radioBtnFemale = QRadioButton('女', self)
        self.radioBtnFemale.move(100, 20)

        # 创建提交按钮
        btn = QPushButton('提交', self)
        btn.move(50, 50)
        btn.clicked.connect(self.submit)

        self.setGeometry(300, 300, 200, 100)
        self.show()

    def submit(self):
        if self.radioBtnMale.isChecked():
            print('性别:男')
        else:
            print('性别:女')

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

在上例中,我们通过设置 setChecked(True) 选中了男性单选按钮。当用户点击提交按钮时,我们通过 isChecked() 方法判断用户选择的性别,并输出对应的结果。

3.2 示例二:颜色选择

假设我们有一个界面需要选择背景颜色。我们可以使用 QRadioButton 来实现这个功能。

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

class App(QWidget):
    def __init__(self):
        super().__init__()
        self.initUI()

    def initUI(self):
        self.setWindowTitle('颜色选择')

        # 创建单选按钮
        self.radioBtnRed = QRadioButton('红色', self)
        self.radioBtnRed.move(50, 20)

        self.radioBtnGreen = QRadioButton('绿色', self)
        self.radioBtnGreen.move(50, 50)

        self.radioBtnBlue = QRadioButton('蓝色', self)
        self.radioBtnBlue.move(50, 80)

        # 显示窗口
        self.setGeometry(300, 300, 200, 150)
        self.show()

        # 为单选按钮设置样式
        self.setStyleSheet('''
            QRadioButton{
                font-size: 20px;
                font-weight: bold;
                color: gray;
            }
            QRadioButton::indicator{
                width: 40px;
                height: 40px;
            }
            QRadioButton::indicator::checked{
                background-color: yellow;
            }
        ''')

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

在上例中,我们使用 setStyleSheet() 方法为单选按钮设置了样式,并通过 ::indicator 来设置单选按钮选中状态的样式。

4. 总结

以上就是使用 PyQt5 中的 QRadioButton 控件实现的示例代码。通过本文的介绍,相信您已经了解如何使用 QRadioButton 来实现单选功能,以及如何为单选按钮设置样式。