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版本的没有这个信号