Qt结合QButtonGroup实现带形参的匿名函数
时间: 2024-03-27 08:37:55 浏览: 64
可以通过使用lambda表达式来实现带形参的匿名函数,然后将lambda表达式与QButtonGroup的信号关联起来。以下是一个示例代码:
```cpp
QButtonGroup* buttonGroup = new QButtonGroup(this);
// 添加三个QPushButton对象到buttonGroup
QPushButton* button1 = new QPushButton("Button1", this);
QPushButton* button2 = new QPushButton("Button2", this);
QPushButton* button3 = new QPushButton("Button3", this);
buttonGroup->addButton(button1);
buttonGroup->addButton(button2);
buttonGroup->addButton(button3);
// 使用lambda表达式来创建匿名函数,并将其与buttonGroup的信号关联起来
connect(buttonGroup, QOverload<QAbstractButton*>::of(&QButtonGroup::buttonClicked),
[=](QAbstractButton* button){
qDebug() << "Button clicked: " << button->text();
});
```
在上面的代码中,lambda表达式使用了一个形参,即QAbstractButton*类型的button,这个形参表示被点击的按钮对象。当任意一个按钮被点击时,lambda表达式将会被执行,输出被点击的按钮对象的文本。
阅读全文