radiobutton的父类是QAbstractbutton。所以继承了其一切属性。
一、单选按钮的常用信号
比较常用的是toggled信号,只有当单选按钮状态改变时才会发射该信号。例如窗口中有btn1、btn2和btn3三个按钮,一开始选择的是btn1.当我选择btn2时,btn1和btn2都会发射信号。btn3因为其状态未发生改变,从而不会发射信号
二、单选按钮的独占特性
只有同一个父控件下,并且只有在该父控件下所有被设置独占特性的按钮之间,他们的状态才是互斥的。默认情况下,单选按钮都具有独占特性。
例子:
self.bnt1.setAutoExclusive(False) # 置bent1的独占特性为false,那么bent2和bent3的点击,同bent1之间将不会产生互斥
三、按钮组
前面说到,默认情况下在一个父控件中的所有单选按钮都是互斥的。这在很多情况下增加了我们的开发难度。
可以使用抽象按钮组QButtonGroup对按钮进行分组(该分组也是一个控件,同其他控件的一个显著区别是他是抽象的,无法可视化)。
实例:
实例化一个分组,并通过addButton方法添加按钮
其中window是主窗口,r_male和r_female被划分到了sex_group组中。
分组通过调用buttons()方法即可查看组内所有按钮