2013-09-10 158 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