Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/159.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 获取组中选中单选按钮的索引_C++_Qt_Radio Button - Fatal编程技术网

C++ 获取组中选中单选按钮的索引

C++ 获取组中选中单选按钮的索引,c++,qt,radio-button,C++,Qt,Radio Button,我在一个组中有几个单选按钮,有没有办法获取当前选中项目的索引 现在我使用以下代码: int getCheckedRadioButton(QWidget *w) { int ii = 0; foreach (QRadioButton *button, w->findChildren<QRadioButton*>()) { if (button->isChecked()) { return ii; }

我在一个组中有几个单选按钮,有没有办法获取当前选中项目的索引

现在我使用以下代码:

int getCheckedRadioButton(QWidget *w)
{
    int ii = 0;
    foreach (QRadioButton *button, w->findChildren<QRadioButton*>()) {
        if (button->isChecked()) {
            return ii;
        }
        ii++;
    }
    return -1;
}
int getCheckedRadioButton(QWidget*w)
{
int ii=0;
foreach(QRadioButton*按钮,w->findChildren(){
如果(按钮->isChecked()){
回报二;
}
ii++;
}
返回-1;
}
这很好,但可能有一个标准的Qt函数或方法来实现它?

这是一个使用案例

如果尚未将单选按钮分组,请使用
QButtonGroup
。对于每个按钮,使用为按钮分配连续的ID,从零开始

然后,要接收按钮的索引,请使用


使用Qt设计器设计表单时,可以通过选择按钮并从关联菜单中选择“分配给按钮组”>“新建按钮组”来对按钮进行分组。但我认为您不能手动将ID分配给组中的按钮。相反,使用after
setupUI
更改自动分配的ID。(它们有点令人困惑,从-2算起是负数,我不知道设计师是如何准确选择顺序的,所以我不建议依赖于这个顺序。)

回答得真是太好了!上面的投票不公平,所以我想我应该明确地说谢谢你写了这封信:)这个极好的答案也是如此。对于新手来说,Qt有太多迟钝的地方。你的回答使我不能做更多的工作。