我正在使用Qt 4.7,我有一部分带有信号和插槽的代码。它的设置正常,即:
#include <QObject>
//Earlier code...
connect(my_thread, SIGNAL(started()), other_thread, SLOT(process()));
connect(my_thread, SIGNAL(finished()), third_thread, SLOT(some_slot()));
//Later code...
然而,当我构建它时,每个语句都会出现错误,说“C3861:'connect':未找到标识符”是否有人有任何想法为什么会这样?谢谢!
答案 0 :(得分:18)
如果您在不属于QObject
派生类的代码中使用connect,请在connect与QObject::
之前使用,因此代码将变为:
//Earlier code...
QObject::connect(my_thread, SIGNAL(started()), other_thread, SLOT(process()));
LE:基本上你调用静态 connect 方法,当你不在QObject(或QObject派生类)的范围内时,你需要完全指定 connect 你想调用,否则编译器找不到它(或者它可能在当前范围内找到错误的连接)