我正在为学校开展一个小组项目。我组的一个成员创建了一个有大约 75 个单选按钮的窗口。我想在按下按钮时强制所有这些都“清除”或“未选中”。
有人知道这样做的好方法吗?我一直在研究 QObjectList 但我不能简单地做 QObjectList *children = new QObjectList(ui->groupBox->children());并使用 for 循环循环它们,因为 QObjectList 似乎没有 next 方法..
我也试过做类似的事情
QObjectList *children = new QObjectList(ui->groupBox->children());
for(QObject *iterator = children.first(); iterator!=NULL; children.pop_front()){
iterator = children.first();
iterator->at(0)->setCheckabled(false);
}
但是因为迭代器是一个 QObject,所以 setCheckable 不像单选按钮那样存在。
想法/提示将不胜感激。
编辑:我什至会提示一种循环访问具有相似名称的变量的方法。例如,我所有的单选按钮都被命名为 RadioButton_1、RadioButton_2 等。
最佳答案
使用 QButtonGroup , 将其设置为独占(然后一次只会检查一个单选按钮)。它还会为您提供当前选中的按钮,以防您也想取消选中它。 (根本没有选中的按钮)。
另请注意,您可能想要修改的是“checked”属性,而不是“checkable”(其中 false 表示按钮根本无法选中/取消选中)。
关于c++ - Qt - 遍历 QRadioButtons,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5598487/