sas*_*alm 7 c++ qt radio-button
我在组中有几个单选按钮,有没有办法获取当前检查项目的索引?
现在我用这个代码:
int getCheckedRadioButton(QWidget *w)
{
int ii = 0;
foreach (QRadioButton *button, w->findChildren<QRadioButton*>()) {
if (button->isChecked()) {
return ii;
}
ii++;
}
return -1;
}
Run Code Online (Sandbox Code Playgroud)
哪个效果不错,但也许有标准的Qt功能或方法呢?
lee*_*mes 20
这是一个用例QButtonGroup.
QButtonGroup如果您还没有将收音机按钮分组.对于每个按钮,用于QButtonGroup::addButton(button, id)为按钮分配连续的ID,从零开始.
然后,要接收按钮的索引,请使用QButtonGroup::checkedId().
当您使用Qt设计器设计表单时,您可以通过选择它们并从上下文菜单中选择"分配给按钮组">"新建按钮组"来对按钮进行分组.但我认为您无法手动为组中的按钮分配ID.而是使用QButtonGroup::setId(button, id)after setupUI来更改自动分配的ID.(它们有点令人困惑,从-2计算为负数,我不知道设计师如何精确地选择订单,因此我不建议依赖该订单.)