PyQt5Day11--按钮QRadioButton

1、QRadioButton简介

  一般用于给用户提供若干个选项中的单选操作。

  继承于QAbstractButton。

2、功能操作

 1 # *******************QRadioButton**********************开始
 2 import sys
 3 from PyQt5.Qt import *
 4 
 5 app=QApplication(sys.argv)
 6 
 7 window=QWidget()
 8 window.setWindowTitle("QRadioButton")
 9 window.resize(500,500)
10 
11 # 只有单个按钮式,可以单击选择,再单击取消;
12 # 而有多个按钮时,必须选择其中一个
13 rb_nan = QRadioButton('男-&Man',window)  # 快捷键Alt+m切换
14 # rb_nan.setShortcut('Alt+m')
15 rb_nan.move(100,100)
16 rb_nan.setChecked(True)  # 默认选中
17 
18 rb_nv = QRadioButton('女-&Female',window) # 快捷键Alt+f切换
19 rb_nv.move(100,150)
20 rb_nv.setIcon(QIcon('xxx.png'))
21 rb_nv.setIconSize(QSize(20,20))
22 rb_nv.toggled.connect(lambda isChecked:print(isChecked))
23 
24 window.show()
25 sys.exit(app.exec_())
26 # *******************QRadioButton**********************结束

3、解决选项组不互斥的问题

(1)添加两个父控件继承顶层控件,选项组分别放入两个父控件

 1 import sys
 2 from PyQt5.Qt import *
 3 
 4 app=QApplication(sys.argv)
 5 
 6 window = QWidget()
 7 window.setWindowTitle("QRadioButton")
 8 window.resize(500,500)
 9 
10 
11 red = QWidget(window)
12 red.resize(200,200)
13 red.setStyleSheet('background-color:red')
14 red.move(50,50)
15 
16 green = QWidget(window)
17 green.resize(200,200)
18 green.setStyleSheet('background-color:green')
19 green.move(red.x()+red.width(),red.y()+red.height())
20 
21 # 只有单个按钮式,可以单击选择,再单击取消;
22 # 而有多个按钮时,必须选择其中一个
23 rb_nan = QRadioButton('男-&Man',red)  # 快捷键Alt+m切换
24 # rb_nan.setShortcut('Alt+m')
25 rb_nan.move(10,10)
26 rb_nan.setChecked(True)  # 默认选中
27 
28 rb_nv = QRadioButton('女-&Female',red) # 快捷键Alt+f切换
29 rb_nv.move(10,50)
30 rb_nv.setIcon(QIcon('xxx.png'))
31 rb_nv.setIconSize(QSize(20,20))
32 rb_nv.toggled.connect(lambda isChecked:print(isChecked))
33 
34 
35 rb_yes = QRadioButton('yes',green)
36 rb_yes.move(10,10)
37 rb_no = QRadioButton('no',green)
38 rb_no.move(10,50)
39 
40 window.show()
41 sys.exit(app.exec_())

(2)通过QButtonGroup实现,见下一节。


作者(QQ):931935931

 

posted @ 2020-03-22 11:22  红叶楠木  阅读(340)  评论(0)    收藏  举报