zoukankan      html  css  js  c++  java
  • PQYT5 互斥单选框,代码直接复制可用

    代码:

     1 from PyQt5.QtWidgets import QWidget, QRadioButton, QApplication, QPushButton, QMessageBox, QButtonGroup
     2 import sys
     3 
     4 class Example(QWidget):
     5     def __init__(self):
     6         super().__init__()
     7         self.initUI()
     8 
     9     def initUI(self):
    10 
    11         self.rb11 = QRadioButton('你是',self)
    12         self.rb12 = QRadioButton('我是',self)
    13         self.rb13 = QRadioButton('他是',self)
    14         self.rb21 = QRadioButton('大美女',self)
    15         self.rb22 = QRadioButton('大帅哥',self)
    16         self.rb23 = QRadioButton('小屁孩',self)
    17 
    18         bt1 = QPushButton('提交',self)
    19 
    20         self.resize(320,180)
    21         self.setWindowTitle('早点毕业吧--单选按钮')
    22         """
    23 新建6个单选按钮。如果不增加分组,这个6个单选按钮是互斥的,因为单选按钮默认为autoExclusive(自动互斥)。
    24         """
    25         self.rb11.move(20,20)
    26         self.rb12.move(20,50)
    27         self.rb13.move(20,80)
    28         self.rb21.move(90,20)
    29         self.rb22.move(90,50)
    30         self.rb23.move(90,80)
    31 
    32         bt1.move(20,120)
    33         """
    34         将单选按钮添加到分组中,同时分配一个id号
    35         """
    36         self.bg1 = QButtonGroup(self)
    37         self.bg1.addButton(self.rb11, 11)
    38         self.bg1.addButton(self.rb12, 12)
    39         self.bg1.addButton(self.rb13, 13)
    40 
    41         self.bg2 = QButtonGroup(self)
    42         self.bg2.addButton(self.rb21, 21)
    43         self.bg2.addButton(self.rb22, 22)
    44         self.bg2.addButton(self.rb23, 23)
    45 
    46         self.info1 = ''
    47         self.info2 = ''
    48         """
    49         当我们在分组中点击给定按钮的时候会发出buttonClicked()信号,同时我们连接到rbclicked这个槽函数上。
    50         """
    51         self.bg1.buttonClicked.connect(self.rbclicked)
    52         self.bg2.buttonClicked.connect(self.rbclicked)
    53         bt1.clicked.connect(self.submit)
    54 
    55         self.show()
    56     """
    57     这个就是当我们点击提交按钮的时候,根据self.info1和self.info2的值弹出相应的消息了。
    58     """
    59     def submit(self):
    60         if self.info1 == '' or self.info2 == '':
    61             QMessageBox.information(self,'What?','貌似有没有选的啊,快去选一个吧!')
    62         else:
    63             QMessageBox.information(self,'What?',self.info1+self.info2)
    64     """
    65     我们判断到底是点了哪个分组,怎么判断?使用self.sender()函数将信号的产生对象送过来。然后根据checkedId()去获得这个按钮的id号,通过id号的判断我们到底是点了哪个单选按钮。
    66     """
    67     def rbclicked(self):
    68         sender = self.sender()
    69         if sender == self.bg1:
    70             if self.bg1.checkedId() == 11:
    71                 self.info1 = '你是'
    72             elif self.bg1.checkedId() == 12:
    73                 self.info1 = '我是'
    74             elif self.bg1.checkedId() == 13:
    75                 self.info1 = '他是'
    76             else:
    77                 self.info1 = ''
    78         else:
    79             if self.bg2.checkedId() == 21:
    80                 self.info2 = '大美女'
    81             elif self.bg2.checkedId() == 22:
    82                 self.info2 = '大帅哥'
    83             elif self.bg2.checkedId() == 23:
    84                 self.info2 = '小屁孩'
    85             else:
    86                 self.info2 = ''
    87 
    88 if __name__ == '__main__':
    89     app = QApplication(sys.argv)
    90     ex = Example()
    91     sys.exit(app.exec_())
  • 相关阅读:
    luogu P3239 [HNOI2015]亚瑟王
    android之软件键盘
    Eclipse输入智能提示设置
    防止反编译
    二进制数据读写
    数据类型转换
    类对象的读写文件
    Eclipse 快捷键
    修改IP
    Android eclipse 运行项目设置程序默认安装到SD卡
  • 原文地址:https://www.cnblogs.com/smartisn/p/13022499.html
Copyright © 2011-2022 走看看