no matching function for call to ‘QObject::connect(QCoreApplication*, const char [15], main(int, char**)::<lambda()>)’ });
时间: 2024-03-29 21:36:44 浏览: 120
no matching function for call to function (解决方案).md
这个错误通常是因为 `QObject::connect()` 函数的参数不匹配导致的。该函数的第一个参数是发送信号的对象,第二个参数是信号的名称,第三个参数是接收信号的对象,第四个参数是槽函数的名称。在此错误中,由于第三个参数是一个 lambda 表达式,所以编译器无法推断出正确的类型。
要解决此问题,可以将 lambda 表达式转换为指向接收信号的对象的槽函数的指针,或者使用 `std::function` 类型作为槽函数参数,这样就可以使用 lambda 表达式。另外,请确保信号和槽函数的参数类型匹配,并且信号和槽函数在同一个线程中执行。
阅读全文