PyQt5 – 点击时改变单选按钮中的文本

  • Post category:Python

当我们使用 PyQT5 来开发 GUI 应用程序时,经常需要使用单选按钮。本文将介绍如何在单击单选按钮时更改其文本内容。

前置准备

在使用 PyQT5 进行开发之前,需要先安装 PyQT5 库。可以通过以下命令在命令行中安装 PyQT5:

pip install pyqt5

单选按钮

单选按钮是一种用户界面控件,它允许用户从多个选项中选择一个。在 PyQT5 中,使用 QRadioButton 类来创建单选按钮。例如,以下代码演示了如何创建两个单选按钮,并将它们添加到窗口中:

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

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

    def initUI(self):
        self.setGeometry(100, 100, 400, 200)

        vbox = QVBoxLayout()

        self.radio1 = QRadioButton('Option 1', self)
        self.radio1.setChecked(True)
        self.radio1.toggled.connect(lambda:self.onRadioBtn(self.radio1))
        vbox.addWidget(self.radio1)

        self.radio2 = QRadioButton('Option 2', self)
        self.radio2.toggled.connect(lambda:self.onRadioBtn(self.radio2))
        vbox.addWidget(self.radio2)

        self.setLayout(vbox)
        self.show()

    def onRadioBtn(self, btn):
        if btn.isChecked():
            print('Selected option is ' + btn.text())

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

运行该程序将会显示两个单选按钮:“Option 1”和“Option 2”。当用户单击单选按钮时,onRadioBtn 方法将被调用,并输出所选选项的文本内容。

在单击单选按钮时更改其文本内容

我们可以通过将 setText 方法应用于 QRadioButton 对象来更改单选按钮的文本内容。例如,以下代码演示了如何在单击单选按钮时更改其文本内容:

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

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

    def initUI(self):
        self.setGeometry(100, 100, 400, 200)

        vbox = QVBoxLayout()

        self.radio1 = QRadioButton('Option 1', self)
        self.radio1.setChecked(True)
        self.radio1.toggled.connect(lambda:self.onRadioBtn(self.radio1))
        vbox.addWidget(self.radio1)

        self.radio2 = QRadioButton('Option 2', self)
        self.radio2.toggled.connect(lambda:self.onRadioBtn(self.radio2))
        vbox.addWidget(self.radio2)

        self.setLayout(vbox)
        self.show()

    def onRadioBtn(self, btn):
        if btn.isChecked():
            if btn.text() == 'Option 1':
                self.radio1.setText('Selected Option 1')
            elif btn.text() == 'Option 2':
                self.radio2.setText('Selected Option 2')

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

运行该程序将会显示与之前相同的两个单选按钮:“Option 1”和“Option 2”。当用户单击单选按钮时,onRadioBtn 方法将被调用,并更改所选选项的文本内容。

总结

本文介绍了 PyQT5 中单选按钮的使用方法,以及在单击单选按钮时如何更改其文本内容。在使用单选按钮时,可以根据实际需求对其进行相应的配置和处理。