QGroupBox 找到选中的单选按钮
Posted
技术标签:
【中文标题】QGroupBox 找到选中的单选按钮【英文标题】:QGroupBox find selected Radio Button 【发布时间】:2017-03-30 01:06:47 【问题描述】:我创建了一个简单的 UI,其中包含一个 QGroupBox
和一堆 QRadioButtons
(准确地说是 32 个),我希望能够找到所选的一个。
我查看了论坛和其他东西,但我找到的答案不起作用,并且参考了一个关于 QGroupBox
不存在方法的文档。
鉴于以下 sn-p,我将如何找到选定的 QRadioButton
(如果有)?
QGroupBox* thingGroup = ui->thingGroupBox;
【问题讨论】:
您想在选择时获取还是随时获取? 【参考方案1】:如果您想在选择其中一个时获取它,您可以使用 toogled 信号,将其连接到某个插槽并使用 sender () 函数并将其转换为 QRadioButton。
*.h
public slots:
void onToggled(bool checked);
*.cpp
QGroupBox *thingGroup = ui->groupBox;
QVBoxLayout *lay = new QVBoxLayout;
thingGroup->setLayout(lay);
for(int i = 0; i < 32; i++)
QRadioButton *radioButton = new QRadioButton(QString::number(i));
lay->addWidget(radioButton);
connect(radioButton, &QRadioButton::toggled, this, &your Class::onToggled);
插槽:
void your Class::onToggled(bool checked)
if(checked)
//btn is Checked
QRadioButton *btn = static_cast<QRadioButton *>(sender());
【讨论】:
唯一的问题是我有 32 个单选按钮,这意味着我必须复制粘贴同一行 32 次。一旦客户按下“下一步”按钮,我只需要获得正确的单选按钮。 是否有更有效的方法绕过单个单选按钮? 我使用了 Qt 设计器,只是将所有单选按钮拖放到 groupbox 的子项中。 等一下,我的错,你的代码完全符合我的意愿。我认为每个单选按钮都需要 *.h 段。现在接受这个答案,感谢您的帮助。以上是关于QGroupBox 找到选中的单选按钮的主要内容,如果未能解决你的问题,请参考以下文章