Qt结合QButtonGroup实现带按钮编号形参的匿名函数
时间: 2024-03-27 09:38:01 浏览: 64
可以通过使用lambda表达式和Qt的元对象系统来实现带按钮编号形参的匿名函数。以下是一个示例代码:
```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, 1);
buttonGroup->addButton(button2, 2);
buttonGroup->addButton(button3, 3);
// 使用lambda表达式和Qt的元对象系统来创建匿名函数,并将其与buttonGroup的信号关联起来
connect(buttonGroup, QOverload<int>::of(&QButtonGroup::buttonClicked),
[=](int id){
qDebug() << "Button clicked: " << id;
});
```
在上面的代码中,我们使用了QButtonGroup的addButton函数的第二个参数来指定每个按钮的编号。然后,我们使用了Qt的元对象系统来获取按钮的编号,并将其作为形参传递给lambda表达式。当任意一个按钮被点击时,lambda表达式将会被执行,输出被点击的按钮的编号。
阅读全文