PyQt5 – 单选按钮的管状指示器

  • Post category:Python

PyQt5是Python中流行的GUI开发框架,其中包含的单选按钮(QRadioButton)控件可以用来让用户从多个选项中选择一个。在Qt中,可以使用管状指示器(indicator)来标记哪个选项被选择,使用户更容易看到他们所选择的选项。下面是关于如何使用Python的PyQt5库实现管状指示器的单选按钮控件的攻略。

创建单选按钮

要创建一个单选按钮,可以使用QRadioButton类,具体方法如下:

radio_button = QRadioButton('选项1', parent)

其中,“选项1”表示按钮的文本,parent是容器中该单选按钮的父控件。

添加管状指示器

默认情况下,QRadioButton控件上没有管状指示器。要向单选按钮添加管状指示器,需要为QRadioButton对象设置大小。可以使用setFixedSize()方法设置固定的大小和setStyleSheet()方法设置指示器的外观。下面的示例代码创建了一个大小为20×20像素的控件:

radio_button = QRadioButton('选项1', parent)
radio_button.setFixedSize(20,20)
radio_button.setStyleSheet('QRadioButton::indicator {width: 15px;height: 15px;}')

这段代码将外观设置为默认设置的大小,可以通过修改 width 和 height 属性自定义大小。

完整示例

接下来,让我们来看一下一个完整使用这个控件的示例:

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

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

    def initUI(self):
        self.setWindowTitle('单选按钮示例')
        self.setGeometry(100,100,300,200)

        vbox = QVBoxLayout()

        radio_button1 = QRadioButton('选项1',self)
        radio_button1.setFixedSize(20,20)
        radio_button1.setStyleSheet('QRadioButton::indicator {width: 15px;height: 15px;}')
        radio_button1.setChecked(True)

        radio_button2 = QRadioButton('选项2',self)
        radio_button2.setFixedSize(20,20)
        radio_button2.setStyleSheet('QRadioButton::indicator {width: 15px;height: 15px;}')

        radio_button3 = QRadioButton('选项3',self)
        radio_button3.setFixedSize(20,20)
        radio_button3.setStyleSheet('QRadioButton::indicator {width: 15px;height: 15px;}')

        vbox.addWidget(radio_button1)
        vbox.addWidget(radio_button2)
        vbox.addWidget(radio_button3)

        self.setLayout(vbox)

if __name__ == '__main__':
    app = QApplication(sys.argv)
    window = MainWindow()
    window.show()
    sys.exit(app.exec_())

该示例使用了PyQt5中的QVBoxLayout来垂直放置三个按钮,并使第一个按钮默认选中。按钮大小为20×20像素,并且使用setStyleSheet()方法来设置指示器的样式,使其看起来像是一个小圆圈。这样,我们就可以通过这个示例学会如何使用PyQt5为单选按钮添加指示器。

除了这个示例,我们还可以进一步地探究QRadioButton类的其他方法和功能,从而实现更多有用的功能。