PyQt5 – 管状单选按钮

  • Post category:Python

下面是关于Python的PyQt5库中的“管状单选按钮”的使用攻略:

什么是“管状单选按钮”?

“管状单选按钮”是一种用于用户界面设计的控件,它通常被用来让用户从多个选项中选择一个。它看起来像一组圆形按钮被排列在一个垂直或水平的框架中,每个按钮对应一个选项。在这些按钮中,只能有一个被选中,而其他的都没有被选中。

在PyQt5中,我们可以使用QRadioButton类来创建“管状单选按钮”。

如何创建“管状单选按钮”?

在PyQt5中,我们可以使用QRadioButton类来创建一个“管状单选按钮”。下面是创建一个水平排列的“管状单选按钮”的示例代码:

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

class Example(QWidget):

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

        self.initUI()

    def initUI(self):

        hbox = QHBoxLayout()

        btn1 = QRadioButton('Option 1')
        hbox.addWidget(btn1)

        btn2 = QRadioButton('Option 2')
        hbox.addWidget(btn2)

        btn3 = QRadioButton('Option 3')
        hbox.addWidget(btn3)

        self.setLayout(hbox)

        self.setGeometry(300, 300, 300, 150)
        self.setWindowTitle('QRadioButton')
        self.show()

if __name__ == '__main__':

    app = QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())

在上面的示例中,我们首先创建了一个继承自QWidget类的Example类,然后在initUI方法中创建了一个水平排列的“管状单选按钮”,并将它们添加到一个QHBoxLayout布局中。最后,我们使用setLayout方法将这个布局设置为窗口的主布局,并显示这个窗口。

如何获取“管状单选按钮”的状态?

当用户选中了一个“管状单选按钮”时,我们需要知道哪个选项被选中了。在PyQt5中,我们可以使用isChecked方法来检查一个“管状单选按钮”是否被选中。下面是关于如何获取“管状单选按钮”的状态的示例代码:

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

class Example(QWidget):

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

        self.initUI()

    def initUI(self):

        vbox = QVBoxLayout()

        hbox1 = QHBoxLayout()

        self.lbl = QLabel('No option selected')
        hbox1.addWidget(self.lbl)

        vbox.addLayout(hbox1)

        hbox2 = QHBoxLayout()

        btn1 = QRadioButton('Option 1')
        hbox2.addWidget(btn1)

        btn2 = QRadioButton('Option 2')
        hbox2.addWidget(btn2)

        btn3 = QRadioButton('Option 3')
        hbox2.addWidget(btn3)

        vbox.addLayout(hbox2)

        btn1.setChecked(True)

        btn1.toggled.connect(lambda:self.btnstate(btn1))
        btn2.toggled.connect(lambda:self.btnstate(btn2))
        btn3.toggled.connect(lambda:self.btnstate(btn3))

        self.setLayout(vbox)

        self.setGeometry(300, 300, 300, 200)
        self.setWindowTitle('QRadioButton')
        self.show()

    def btnstate(self, btn):

        if btn.isChecked():
            self.lbl.setText(btn.text() + ' is selected')
        else:
            self.lbl.setText('No option selected')

if __name__ == '__main__':

    app = QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())

在上面的示例中,我们创建了一个垂直排列的“管状单选按钮”和一个“标签”控件。当用户选择一个“管状单选按钮”时,我们将在这个标签中显示用户选择的选项。除此之外,我们还将第一个选项设为默认选中的状态。

然后我们使用toggled信号连接了三个“管状单选按钮”和一个btnstate方法。这个方法将会在每次用户选中或取消选中一个“管状单选按钮”时被调用。在这个方法中,我们使用isChecked方法检查一个“管状单选按钮”是否被选中,并将不同的文本显示在标签中。

综上所述,以上就是关于Python的PyQt5库中的“管状单选按钮”的使用攻略,包括了创建和获取状态两方面内容的完整解释和实例代码。