QRadioButton分组 使用技巧
QRadioButton按钮较多,但功能单一,为避免过多的代码采用一下方式。
QButtonGroup 包装QRadioButton。
存在多个分组,采用数组保存即可。
例如:
enum type_radio//radiobutton 分组
{
A=0,
B,
C,
D,
count
};
QButtonGroup *m_grop[type_radio::count] = { nullptr };
初始化:
m_grop[type_radio::saveImage] = new QButtonGroup(this);
m_grop[type_radio::A]->addButton(ui->radio_saveimage_false,0);
m_grop[type_radio::A]->addButton(ui->radio_saveimage_true, 1);
、、、、、
for (int i=0; i < type_radio::count;i++)
{
connect(m_grop[i], QOverload<int>::of(&QButtonGroup::buttonClicked),this,[=](int index)
{
int bottonGroup = ((int)&m_grop[i] - (int)&m_grop[0])/sizeof (QButtonGroup*);
setGlobalVal(bottonGroup , index);//处理 业务逻辑即可
});
}