QRadioButton 放在组合框QGroupBox中,再点击时,即使有多个QRadioButton按钮,同时选中的也就只有一个。 如下图所示,
对于多个QRadioButton,每个按钮都写一个槽函数是不太明智的选择,需要将QRadioButton放在
QButtonGroup进行管理,
QButtonGroup *m_pGroup;//只有一个group
//添加控件
for(int i = 0; i < FUN_NUMBER; i++)
{
m_pGroup=new QButtonGroup(this);
}
//QRadioButton::idToggled;
m_pGroup->addButton(ui->drag_radioButton,0);
m_pGroup->addButton(ui->selectrect_radioButton,1);
m_pGroup->addButton(ui->tracer_radioButton,2);
m_pGroup->addButton(ui->resetcurve_radioButton,3);
//不想这样写信号槽函数
//connect(m_pGroup,SIGNAL(idClicked(int)),this,SLOT(onRadioCorespond(int)));
void (QButtonGroup:: * pClick)(int time) = &QButtonGroup::buttonClicked;
connect(m_pGroup, pClick, this, &Widget::onRadioCorespond);//传递一个参数
//onRadioCorespond是槽函数
void Widget::onRadioCorespond(int nCursel)
{
//输出 选中的是哪个radio按钮
qDebug() <<"nCursel = "<<nCursel;
}
注意: 我的qt是5.12.6 ,信号是 QButtonGroup::buttonClicked,
网上查到的消息是idClicked, qt5.12.6版本的没有这个信号