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

标签 c++ qt radio-button

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

enter image description here

现在我使用这段代码:

int getCheckedRadioButton(QWidget *w)
{
    int ii = 0;
    foreach (QRadioButton *button, w->findChildren<QRadioButton*>()) {
        if (button->isChecked()) {
            return ii;
        }
        ii++;
    }
    return -1;
}

哪个工作得很好,但也许有一个标准的 Qt 函数或方法来做到这一点?

最佳答案

这是 QButtonGroup 的用例.

如果您还没有使用QButtonGroup 对您的单选按钮进行分组。对于每个按钮,使用 QButtonGroup::addButton(button, id)为您的按钮分配连续的 ID,从零开始。

然后,要接收按钮的索引,请使用 QButtonGroup::checkedId() .

当您使用 Qt 设计器设计表单时,您可以通过选择按钮并从上下文菜单中选择“分配给按钮组”>“新建按钮组”来对按钮进行分组。但我认为您不能手动为组中的按钮分配 ID。相反,使用 QButtonGroup::setId(button, id)setupUI 之后更改自动分配的 ID。 (它们有点令人困惑,从 -2 算负数,我不知道设计师如何准确选择顺序,所以我不建议依赖该顺序。)

关于c++ - 获取组中选中单选按钮的索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33809177/

相关文章:

C++ 简单的从二进制转换为十进制

c++ - Microsoft Visual Studio 上的 OpenCL : templates cannot be declared to have C linkage

c++ - 什么时候调用构造函数?

c++ - 接受单个文件或单个目录的 QFileDialog

windows - 使用 msvc 为 Windows 构建 Qt - Qmakespec 错误

css - 在 : CSS only 末尾使用隐藏触发器分隔显示隐藏触发器

javascript - HTML 单选按钮 Javascript

c++ - 在模板参数中使用时,type_trait<T>{} 中的 {} 的作用是什么?

c++ - 如果 child 调整大小,让 QWidget 和 QVBoxLayout 自动调整大小(Qt4)

css - 选中的单选按钮的样式标签,包裹在 label 标签中