2013-09-10 12 views
6

Pracuję w Qt 4.7 i mam część kodu z sygnałami i gniazdami. To skonfigurować tak, jak normalne, a mianowicie:Qt - kompilator nie rozpozna "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... 

Jednak, kiedy budować daje błąd dla każdej instrukcji powiedzenie „C3861:«connect»: identyfikator nie znaleziono” Czy ktoś ma jakieś pomysły, dlaczego to może być? Dzięki!

Odpowiedz

16

Jeśli używasz połączyć w kodzie, który nie jest częścią QObject klasie pochodnej, poprzedzać połączyć z QObject::, więc kod będzie:

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

LE: w zasadzie nazwać statyczne połączyć i gdy nie jesteś w zakresie klasy QObject (lub klasy pochodnej QObject), musisz w pełni określić połączyć, którą chcesz wywołać, inaczej kompilator jej nie znajdzie (lub może znaleźć niewłaściwe połączenie w obecny zakres)

+0

th na to, dzięki! :) – thnkwthprtls

Powiązane problemy