2013-09-10 12 views
6

Sto lavorando in Qt 4.7 e ho una parte di codice con segnali e slot. E 'istituito proprio come normale, vale a dire:Qt - il compilatore non riconoscerà "connect"

#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... 

Tuttavia, quando ho costruire dà un errore per ogni dichiarazione dicendo "C3861: 'connect': identificatore non trovato" Qualcuno ha qualche idea per cui questo può essere? Grazie!

risposta

16

Se si utilizza la connessione nel codice che non fa parte di una classe derivata QObject, precedere il collegamento con la QObject::, in modo che il codice sarà:

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

LE: in pratica si chiama la statica collegare metodo e quando non si è nell'ambito di un oggetto QObject (o una classe derivata QObject) è necessario specificare completamente il connect che si desidera chiamare, altrimenti il ​​compilatore non lo trova (o potrebbe trovare una connessione errata in l'ambito attuale)

+0

th a, grazie! :) – thnkwthprtls

Problemi correlati