2013-09-10 55 views
6

我正在Qt 4.7中工作,并且我有一部分带有信号和插槽的代码。它的成立,就像正常的,即:Qt - 编译器无法识别“连接”

#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:‘连接’:找不到标识符”没有人有任何想法,为什么这可能是?谢谢!

回答

16

如果您使用的连接代码,是不是一个QObject派生类中的一部分,先用QObject::的连接,因此代码将变为:

//Earlier code... 
QObject::connect(my_thread, SIGNAL(started()), other_thread, SLOT(process())); 

LE:基本上你调用静态连接方法,并且当您不在QObject(或QObject派生类)的范围内时,您需要完全指定要调用的连接,否则编译器不会找到它(或者它可能会找到错误的连接当前范围)

+0

th是的,谢谢! :) – thnkwthprtls