【发布时间】:2019-04-12 12:41:21
【问题描述】:
我需要为插槽添加一个额外的参数(2 个参数),同时连接一个只有一个参数的信号,用于多个相同类型的小部件。
所以我创建了一个 Widget 对象的向量,尝试在 for 循环中使用 lambda 函数建立连接。
这是我尝试过的示例:
QWidget* widget1, widget2, widget3, widget4;
/*...
Assign memory to them
...*/
QVector <QWidget> m_widgetVec = {widget1, widget2, widget3, widget4}
for(int i=0; i < 4; i++)
{
connect(m_widgetVec[i], &QWidget::clicked, [&](bool state){
myfunc(i, state);}));
}
当我收到的状态执行值正常,但i 的值始终为 0。
我希望i 是 0,1,2,3。对于小部件 1、2、3、4。
有什么建议吗? 感谢您的帮助。
【问题讨论】: