我正在尝试在Qt中使用lambda表达式,而我正在使用connect
函数
我的代码是这样的:
for(int i = propertyToNodeMap.size() -1 ; i >= 0 ; --i)
{
connect(&mainDialog,mainDialog.accepted(),[=](){
; //sth ....
});
}
我在Windows 7上使用Qt 5.3和MinGW作为编译器。
错误消息是:
error: invalid use of void expression
});
^
此外,我使用Qt文档和here作为参考来实现这段代码。 的问候,
答案 0 :(得分:0)
connect
需要一个指向成员函数的指针:
connect(&mainDialog, &DialogClass::accepted, [=](){
; //sth ....
});
我假设DialogClass
是mainDialog
是一个实例的类。
答案 1 :(得分:-1)
问题既不与lambda表达式有关,也与foreach
语句无关(对于在上一版之前对该问题进行评论,现在已被删除的人)或“sth'一部分。
正确的连接形式如下:
connect(&mainDialog,&mainDialog.accepted(),[=](){ // missing '&'
; //sth ....
});