c++ qradiobutton 二选一信号
时间: 2023-12-23 07:03:05 浏览: 72
在C++中使用QRadioButton时,可以使用QButtonGroup来将多个QRadioButton归为一组,实现二选一的效果。
例如,假设有两个QRadioButton,分别命名为radioBtn1和radioBtn2,可以按照以下步骤实现二选一的信号:
1. 在类的头文件中声明一个QButtonGroup对象,例如:
```
class MyClass : public QWidget
{
Q_OBJECT
public:
MyClass(QWidget *parent = nullptr);
private:
QButtonGroup *buttonGroup;
QRadioButton *radioBtn1;
QRadioButton *radioBtn2;
private slots:
void onButtonClicked(QAbstractButton *button);
};
```
2. 在类的构造函数中创建QButtonGroup对象,将所有QRadioButton添加到该组中,并连接信号与槽函数,例如:
```
MyClass::MyClass(QWidget *parent)
: QWidget(parent)
{
radioBtn1 = new QRadioButton("Option 1", this);
radioBtn2 = new QRadioButton("Option 2", this);
buttonGroup = new QButtonGroup(this);
buttonGroup->addButton(radioBtn1);
buttonGroup->addButton(radioBtn2);
connect(buttonGroup, SIGNAL(buttonClicked(QAbstractButton*)), this, SLOT(onButtonClicked(QAbstractButton*)));
}
```
3. 在槽函数中根据当前选中的QRadioButton执行相应的操作,例如:
```
void MyClass::onButtonClicked(QAbstractButton *button)
{
if (button == radioBtn1)
{
// Option 1 selected
}
else if (button == radioBtn2)
{
// Option 2 selected
}
}
```
阅读全文