Название: Соединение сигналов со слотами Отправлено: von_Manstein от Август 06, 2011, 08:44 Доброго всем дня.
Выдал вот такую вещь мне компилятор, хотя казалось бы: no matching function for call to 'QObject::connect(QPushButton*, const char*, QApplication*, const char*, Qt::ConnectionType) вот на такой кусок кода: Код: QObject::connect( функция getExitPointer() имеет следующую реализацию: Код: MyInterfaceMaker::getExitPointer() Ведь QPushButton наследован от QObject`а, вроде... Название: Re: Соединение сигналов со слотами Отправлено: Странник от Август 06, 2011, 09:29 а заголовочные файлы <QPushButton> и <QApplication> подключены? или компилятор догадываться должен, от кого они там унаследованы?
Название: Re: Соединение сигналов со слотами Отправлено: von_Manstein от Август 06, 2011, 09:32 В main.cpp подключен QApplication и хедер моего класса, а уже в хедере подключен QPushButton. Врят ли это была бы причина, иначе бы он написал, что таких классов вообще нет, а тут именно на функцию.
Он ругнулся, как я понял на то, что ему не нравится что вместо параментра QObject*, я ему кормлю QPushButton*. Ну так кнопка - наследница от QObject. Или я не понимаю чего-то? Название: Re: Соединение сигналов со слотами Отправлено: Странник от Август 06, 2011, 09:39 В main.cpp подключен QApplication и хедер моего класса, а уже в хедере подключен QPushButton. Врят ли это была бы причина, иначе бы он написал, что таких классов вообще нет, а тут именно на функцию. если в хедере у вас объявлен class QPushButton - не написал бы. есть функция QObject::connect(QObject*, const char*, QObject*, const char*, Qt::ConnectionType), очевидно компилятор не улавливает связи между QPushButton и QObject. проверьте все же хедер.Название: Re: Соединение сигналов со слотами Отправлено: von_Manstein от Август 06, 2011, 09:49 Проблема была решена по-другому. Соединение было произведено в конструкторе моего класса через qApp (глобальный указатель на qapplication).
Насчёт связи да, очевидно, ему не указано что-то или я не так подключил. В принципе теперь задача выполнена и можно спокойно обсуждать ;) И тем не менее, как же подключать правильно, чтобы связь он понял? Название: Re: Соединение сигналов со слотами Отправлено: von_Manstein от Август 06, 2011, 09:55 Итого, в мейн был включён модуль QtGui и хедер класса.
В классе были декларированы все используемые классы. В файле реализации класса были подключены хедеры всех элементов интерфейса и qapplication. Вопрос: ничего лишнего я не наподключал и не подключил ли чего два раза? Хотя защита от повторного включения есть, но всё же. можно ли проще? Название: Re: Соединение сигналов со слотами Отправлено: Странник от Август 06, 2011, 10:02 Итого, в мейн был включён модуль QtGui и хедер класса. QtGui в main.cpp можно не включать, хедера класса достаточно. а коннект в конструкторе смотрится логичней.В классе были декларированы все используемые классы. В файле реализации класса были подключены хедеры всех элементов интерфейса и qapplication. Вопрос: ничего лишнего я не наподключал и не подключил ли чего два раза? Хотя защита от повторного включения есть, но всё же. можно ли проще? Название: Re: Соединение сигналов со слотами Отправлено: von_Manstein от Август 06, 2011, 10:15 Насчёт логичней да, согласен. А вот если не включать QtGui в мейн, то получаю вот что:
QApplication считает не объявленным. А в принципе, даже если я два раза напишу подключить одно и тоже, физически этого поидее не произойдёт, ведь есть препроцессорная защита от этого, так? И на программе не отразиться, так? А вот в мейне не включать не получается, требует, чтоб объявлен был. Приходится в двух местах подключать. Название: Re: Соединение сигналов со слотами Отправлено: Странник от Август 06, 2011, 11:01 Насчёт логичней да, согласен. А вот если не включать QtGui в мейн, то получаю вот что: защита есть, конечно. но в main.cpp достаточно <QApplication>, зачем весь <QtGui>.QApplication считает не объявленным. А в принципе, даже если я два раза напишу подключить одно и тоже, физически этого поидее не произойдёт, ведь есть препроцессорная защита от этого, так? И на программе не отразиться, так? А вот в мейне не включать не получается, требует, чтоб объявлен был. Приходится в двух местах подключать. Название: Re: Соединение сигналов со слотами Отправлено: von_Manstein от Август 06, 2011, 20:32 Спасибо за помощь!
|