qt中radiobutton 二选一的代码
时间: 2024-02-17 19:03:14 浏览: 214
应用源码之RadioButtonAndCheckBox.zip
在 Qt 中,我们可以使用 QRadioButton 类来创建单选按钮控件。以下是一个简单的二选一的代码示例:
```cpp
QRadioButton *radioButton1 = new QRadioButton("选项 1");
QRadioButton *radioButton2 = new QRadioButton("选项 2");
QVBoxLayout *layout = new QVBoxLayout;
layout->addWidget(radioButton1);
layout->addWidget(radioButton2);
QButtonGroup *buttonGroup = new QButtonGroup;
buttonGroup->addButton(radioButton1);
buttonGroup->addButton(radioButton2);
connect(buttonGroup, QOverload<int>::of(&QButtonGroup::buttonClicked), [=](int id) {
if (id == radioButton1->id()) {
// 用户选择了选项 1
} else if (id == radioButton2->id()) {
// 用户选择了选项 2
}
});
QWidget *widget = new QWidget;
widget->setLayout(layout);
widget->show();
```
在这个代码中,我们首先创建了两个 QRadioButton,然后将它们添加到一个 QVBoxLayout 中,最后将这个 QVBoxLayout 设置为一个 QWidget 的布局,并显示这个 QWidget。
我们还创建了一个 QButtonGroup,并将两个 QRadioButton 添加到其中,这样它们就成为了互斥的。我们通过 connect 方法将 QButtonGroup 的 buttonClicked 信号连接到一个 lambda 函数上,这个 lambda 函数会在用户点击单选按钮时触发。
在 lambda 函数中,我们可以根据用户选择的 QRadioButton 的 id 来判断用户选择了哪个选项,并进行相应的处理。注意,QRadioButton 的 id 是由 QButtonGroup 自动生成的,所以我们可以通过 radioButton1->id() 和 radioButton2->id() 来获取它们的 id。
阅读全文