当前位置:首页>python>32.Python实战__单选按钮简介

32.Python实战__单选按钮简介

  • 2026-09-10 12:31:34
32.Python实战__单选按钮简介
    今天再来介绍一个GUI中比较常用的一个控件,单选按钮QRadioButton,顾名思义,单选按钮就是只能选一个,不能多选;就像是考试的单项选择题一样,只能选一个答案。
先看单选按钮效果
用法其实也很简单,附原代码如下:
一、还是先导入常用的模块
from PySide6.QtWidgets import QWidget, QApplication,      QPushButton, QGridLayout, QLabel, QRadioButton
二、创建类Btn并继承QWidget
class Btn(QWidget):      def __init__(self):            super().__init__()            # 设置窗口标题    self.setWindowTitle("单选按钮")            # 设置窗口尺寸    self.resize(300, 300)            # 设置控件样式(暂时跳过,后面再聊这部分内容)    self.setStyleSheet("""                        QWidget                        {                          background-color: powderblue;                            font-size: 20px;                        }                        """)     # 创建网格布局     self.main_layout = QGridLayout()     # 设置网格布局为主布局             self.setLayout(self.main_layout)             # 设置布局的水平和垂直间隔距离为20             self.main_layout.setSpacing(20)     # 设置(左、上、右、下)内容边距             self.main_layout.setContentsMargins(20, 20, 10, 10)     # 初始化实例方法setup_01         self.setup_01()
三、创建实例方法setup_01,在实例方法中创建所需要的控件
def setup_01(self):      # 创建题目标签      self.label_1 = QLabel("中华人民共和国成立日期是:", self)      # 创建四个单选按钮      self.radio_01 = QRadioButton("A:  1950年5月1日", self)      self.radio_02 = QRadioButton("B:  1950年7月1日", self)      self.radio_03 = QRadioButton("C:  1949年5月1日", self)      self.radio_04 = QRadioButton("D:  1949年10月1日", self)      # 创建提交答案按钮      self.btn = QPushButton("确认提交", self)      # 为按钮连接槽函数  self.btn.clicked.connect(self.show_result)      # 创建结果展示标签      self.label_2 = QLabel()      # 把上面标签添加到布局中      self.main_layout.addWidget(self.label_1, 0, 0)      self.main_layout.addWidget(self.radio_01, 1, 0)      self.main_layout.addWidget(self.radio_02, 2, 0)      self.main_layout.addWidget(self.radio_03, 3, 0)      self.main_layout.addWidget(self.radio_04, 4, 0)      self.main_layout.addWidget(self.btn, 5, 0)      self.main_layout.addWidget(self.label_2, 6, 0)
四、创建按钮连接的槽函数
def show_result(self):      # 先判断,有没有选择答案      if not(self.radio_01.isChecked() or self.radio_02.isChecked()                     or self.radio_03.isChecked() or self.radio_04.isChecked()):            self.label_2.setText("请先选择答案!")      # 如果选择了正确选项  elif self.radio_04.isChecked():            self.label_2.setText("恭喜你答对了!")            self.label_2.setStyleSheet("color: red;")      # 未选择正确选项  else:            self.label_2.setText("蠢货,这都能答错!")            self.label_2.setStyleSheet("color: green;")
五、补充说明
    单元按钮默认是互斥的,不能同时选择多个,当然如果把他的自动互斥关闭,就可以当多选按钮来用了,一般不建议这样用,因为单选按钮设计之初就是当单选来用的;因为GUI里面有专门的多选按钮,没必要通过这种方式来实现多选。
    比如上面创建完按钮后,把自动互斥 setAutoExclusive(False)设置成False就可以了,默认是True。
# 创建题目标签self.label_1 = QLabel("中华人民共和国成立日期是:", self)# 创建二个单选按钮self.radio_01 = QRadioButton("A:  1950年5月1日", self)self.radio_02 = QRadioButton("B:  1950年7月1日", self)self.radio_03 = QRadioButton("C:  1949年5月1日", self)self.radio_04 = QRadioButton("D:  1949年10月1日", self)# 把自动独享(互斥)设置为False__________self.radio_01.setAutoExclusive(False)self.radio_02.setAutoExclusive(False)self.radio_03.setAutoExclusive(False)self.radio_04.setAutoExclusive(False)
关闭单选互斥效果
    Python中的常用控件也没有多少,也没有太多要写的东西,编程最终的目的还是面向工作、面向实际问题更有意思,大家如果工作中有什么问题需要用编程来解决的,欢迎留言,大家试着用编程来实实在在的解决生活和工作中的重复劳动。

最新文章

随机文章