码迷,mamicode.com
首页 > 其他好文 > 详细

PQYT5 互斥单选框,代码直接复制可用

时间:2020-06-01 00:45:42      阅读:68      评论:0      收藏:0      [点我收藏+]

标签:onclick   clu   check   style   信号   elf   resize   默认   --   

代码:

 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_())

 

PQYT5 互斥单选框,代码直接复制可用

标签:onclick   clu   check   style   信号   elf   resize   默认   --   

原文地址:https://www.cnblogs.com/smartisn/p/13022499.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!