Название: [Решено] Проблема connect разных классов. Отправлено: Glaciuse от Январь 25, 2012, 13:52 Есть такой код:
#include "SomeClass1.h" #include "SomeClass2.h" #include <QtGui/QApplication> int main(int argc, char *argv[]) { QApplication app(argc, argv); SomeClass1 obj1; SomeClass2 obj2; obj1.show(); obj2.show(); return app.exec(); } В классе SomeClass1 есть сигнал с названием smthEvent, а в классе SomeClass2 есть слот smthToDo. Нужно связать сигнал smthEvent класса SomeClass1 со слотом smthToDo класса SomeClass2. Класс SomeClass1 наследуется от QWidget, класс SomeClass2 от QLabel. Если добавить в main() после инициализации объектов obj1 и obj2 строку: QObject::connect( obj1 , SIGNAL(smthEvent()) , obj2 , SLOT(smthToDo()) ); , то компилятор ругается на то, что для connect нет конструктора данного типа. Как правильно связать сигнал smthEvent со слотом smthToDo? Название: Re: Проблема connect разных классов. Отправлено: mutineer от Январь 25, 2012, 13:56 В connect надо указатели на объекты передавать, а не сами объекты. В документации написано...
И причем тут GUI ? Название: Re: Проблема connect разных классов. Отправлено: danquimby от Январь 25, 2012, 17:09 навая не проверял :) это для наглядности . все они от QObject
все равно все приходят к нему, так что пример все равно актуален. Код: class SomeClass1 : public QObject Название: Re: Проблема connect разных классов. Отправлено: danquimby от Январь 25, 2012, 17:11 и еще , тема не верная , конект соединяет
ОДИНАКОВЫЕ классы. 1. наследники от QObject или его производных 2. они должны иметь макрос Q_OBJECT эти 2 параметра и все будет тип топ Название: Re: Проблема connect разных классов. Отправлено: twp от Январь 25, 2012, 17:12 Код
Название: Re: Проблема connect разных классов. Отправлено: danquimby от Январь 25, 2012, 18:04 Код
когда QObgect не является производным То нужно указывать QObject:: :) Название: Re: Проблема connect разных классов. Отправлено: mutineer от Январь 25, 2012, 18:21 2 danquimby: ты только что убил мой неокрепший мозг
Название: Re: Проблема connect разных классов. Отправлено: danquimby от Январь 25, 2012, 18:25 2 danquimby: ты только что убил мой неокрепший мозг отвратительно, первый труп на мои крепкие плечи ::)Название: Re: Проблема connect разных классов. Отправлено: twp от Январь 25, 2012, 19:26 я как бы показал что в connect нужно передавать указатели на объект, а не сами объекты
По идее это и была ошибка ТС: Цитировать Если добавить в main() после инициализации объектов obj1 и obj2 строку: QObject::connect( obj1, SIGNAL(smthEvent()) , obj2, SLOT(smthToDo()) ); , то компилятор ругается на то, что для connect нет конструктора данного типа. Название: Re: Проблема connect разных классов. Отправлено: danquimby от Январь 25, 2012, 19:38 я думаю тут уже начался флуд, так что я вроде набросал пример.
Если автор не понял, ну тогда доки в зубы. Название: Re: Проблема connect разных классов. Отправлено: Glaciuse от Январь 25, 2012, 20:01 Спасибо danquimby,twp,mutineer за ответы, со всем разобрался.
danquimby, большое спасибо за пример. |