我需要检查一个接一个地知道哪个单选按钮在Qt组检查
Do I need to check one by one to know which radiobutton is checked in a group in Qt
我知道我可以使用这种代码来知道哪个单选按钮在Qt中被选中:
int checkButton;
if( ui->radioButton_0->isChecked() ){
checkButton = 0;
}else if(ui->radioButton_1->isChecked()){
checkButton = 1;
}else if
...
是否有任何更容易的方法来知道哪个单选按钮在Qt组中检查。我认为如果有这种更容易的方法,当单选按钮组很大时,这真的很有帮助。代码可能看起来像这样:
int checkbutton = groupName.getCheckButtonIngroup();
我们也可以在Qt设计器的组框中放置一些单选按钮,在此之后找到组框的孩子,将孩子添加到buttonGroup并使用checkedId或checkedButton方法。
void MainWindow::on_pushButton_15_clicked()
{
QButtonGroup group;
QList<QRadioButton *> allButtons = ui->groupBox->findChildren<QRadioButton *>();
qDebug() <<allButtons.size();
for(int i = 0; i < allButtons.size(); ++i)
{
group.addButton(allButtons[i],i);
}
qDebug() << group.checkedId();
qDebug() << group.checkedButton();
}
首先,您需要将所有单选按钮添加到按钮组中。有两种方法:
- 在Qt设计器中选择您想要添加的所有单选按钮并从上下文菜单中选择
Assign to button group
。 - 从代码。创建一个新的QButtonGroup,并添加按钮与
QButtonGroup::addButton
。
那么任何时候你都可以知道哪个按钮被选中了:
-
如果你需要一个选中按钮的指针使用
QButtonGroup::checkedButton
-
如果需要多个按钮,则需要使用
addButton(QAbstractButton* button, int id)
手动添加按钮到群组中。在此之后,使用QButtonGroup::checkedId
来获得选中按钮的标识符。
相关文章:
- 如何检查一个c++字符串中有多少相同的字符/数字
- 检查注册表项是否链接到(或副本)另一个注册表项
- 检查哪个对象调用了另一个对象的对象方法
- 检查一个类型是否直接派生自"enable if"上下文中的另一个类型(是其子类型)
- C++将一个指针分配给另一个指针时执行的类型检查
- 检查 2D 网格的某个元素是否与另一个元素共享对角线、水平线或垂直线
- 如何巧妙地编写两个函数——一个用于检查是否存在解决方案,另一个用于获取所有解决方案
- 编写了一个C++代码来检查表达式是否具有平衡括号并且我的代码未运行.我已经卡了一天了
- 检查路径是否包含C++中的另一个路径
- 给定一个大小为 N 的数组 S,检查是否可以将序列拆分为两个序列
- 如何检查第三个 API 是否在 Linux 中为 c/c++ 程序创建了一个新线程?
- 如何检查流中文件的下一个单词是否为 alpha?
- 找到 x^n 的所有组合,并检查它们的总和是否等于一个不包括相同数字的数字
- 是否有一个库可以检查C++中的变量类型?
- 我们应该在使用 std::bind 应用之前检查一个不为空的函数吗?
- 如何检查一个模板是否是另一个模板的类成员
- 如何检查一个字符是否与字符数组中的另一个字符匹配?
- 尝试使用 indexOf 创建一个 if 语句来检查字符串是否包含字符.有一点麻烦
- 我已经创建了一个模板函数,但是在检查输入是奇数还是偶数时收到错误 C++.
- C++:另一个"检查指针是否为空"