Qt中使用多于一个群组RadioButton时,由于QRadioButton的特性,所按钮都是一个群组每次只能选择一个,要使得多组RadioButton相互独立,需要用到QButtonGroup这个功能,把RadioButton加到QButtonGroup里面,实现多组RadioButton的相互独立;具体实现方法有两种。
一种程序实现:灵活多变,具体代码如下:
#include<QRadioButton>
#include<QButtonGroup>
QRadioButton * m_BtnA1 = new QRadioButton("第一组第一个按钮");
QRadioButton * m_BtnA2 = new QRadioButton("第一组第二个按钮");
QRadioButton * m_BtnB1 = new QRadioButton("第二组第一个按钮");
QRadioButton * m_BtnB2 = new QRadioButton("第二组第二个按钮");
QButtonGroup * BtnGroupA = new QButtonGroup;
QButtonGroup * BtnGroupB = new QButtonGroup;
BtnGroupA->addButton(m_BtnA1,0);
BtnGroupA->addButton(m_BtnA2,1);
BtnGroupA->setExclusive(true);//使m_BtnA1与m_BtnA2互斥
BtnGroupB->addButton(m_BtnB1,0);
BtnGroupB->addButton(m_BtnB2,1);
BtnGroupB->setExclusive(true);
设置组关键是:BtnGroup->setExclusive(true);让一个group中的按钮彼此互斥,QCheckbox控件也可以达到类似的效果。
一种在UI界面上设置也可实现此效果:具体操作,先加入需要的布局,在布局中加入需要的QRadioButton数量,再将布局变形为QGroupBox即可达成效果!