QT:在连接语句中使用lambda - VS2012

时间:2014-01-24 20:20:11

标签: c++ qt

我正在尝试使用此声明。我在VS2012中使用QT 5.1

connect(ui.pushButton_next, SIGNAL(clicked()), []{
    std::cout << "clicked" << std::endl;
});

我得到了

  

错误C2664:'QMetaObject :: Connection QObject :: connect(const QObject   *,const char *,const char *,Qt :: ConnectionType)const':无法转换参数3   'newAccount :: {ctor} ::'to   'const char *'1&gt;没有用户定义的转换运算符   可以执行此转换,或运营商不能   称为

有关我可能做错的任何建议吗?

1 个答案:

答案 0 :(得分:4)

Looking at the documentation,支持SIGNAL和SLOT宏的connect方法的重载似乎不会引入Functor对象 - 只有this overload支持PointerToMemberFunction。

您的代码的正确语法是:

connect(ui.pushButton_next, &QObject::clicked, []{
    std::cout << "clicked" << std::endl;
});
相关问题