2013-09-10 4 views
6

Я работаю в Qt 4.7, и у меня есть часть кода с сигналами и слотами. Он создан как нормальный, а именно:Qt - компилятор не распознает «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... 

Однако, когда я строю это дает ошибку для каждого оператора, говоря «C3861:„Connect“: идентификатор не найден» Кто-нибудь есть какие-либо идеи, почему это может быть? Благодаря!

ответ

16

При использовании подключения в коде, который не является частью QObject производного класса, предшествуют соединиться с QObject::, так что код будет:

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

LE: в основном вызове статического подключения и если вы не находитесь в области QObject (или производного класса QObject), вам нужно полностью указать connect, который вы хотите вызвать, иначе компилятор не найдет его (или он может найти неправильное соединение в текущий объем)

+0

th на это было, спасибо! :) – thnkwthprtls

Смежные вопросы