Russian Qt Forum

Qt => Вопросы новичков => Тема начата: ibnz от Апрель 26, 2013, 12:43



Название: Связывание сигналов после приведения типа
Отправлено: ibnz от Апрель 26, 2013, 12:43
корректно ли такое связывание?

class SpecApplication: public QApplication{Q_OBJECT signals: void specialSignal()};
...

int main(int argc, char *argv[])
{
    SpecApplication a(argc, argv);
    SomeForme startForm;
    startForm.show();    
    return a.exec();
}

На каком-то виджете из SomeForm:

connect(static_cast<SpecApplication*>(qApp), SIGNAL(specialSignal()), this, SLOT(myslot()));

Сигнал точно испускается, но в слот не попадаю. MOC не ругается, но есть подозрение, что он не может правильно обработать такой финт и придется везде передавать указатель явно. Почти в этом уверен, но хочется услышать мнения.


Название: Re: Связывание сигналов после приведения типа
Отправлено: _OLEGator_ от Апрель 26, 2013, 12:47
Не верно. Типы можно не приводить, поиском нужного сигнала или слота займется система метаобъектной информации.
Неверно создан класс SpecApplication - как минимум требуется макрос Q_OBJECT.


Название: Re: Связывание сигналов после приведения типа
Отправлено: ibnz от Апрель 26, 2013, 12:50
Q_OBJECT есть, замел его при сокращении при упрощении для публикации нечаянно. Поправил.


Название: Re: Связывание сигналов после приведения типа
Отправлено: mutineer от Апрель 26, 2013, 12:52
Это бессмысленно, connect все равно принимает QObject*


Название: Re: Связывание сигналов после приведения типа
Отправлено: ibnz от Апрель 26, 2013, 12:55
Это бессмысленно, connect все равно принимает QObject*
Кстати, да... спасибо.)
Но некоторый смысл все же есть, чтобы воспользоваться автопоиском сигнала в криэйторе. И только. Значит проблема не в этом. буду рыть далее спс.


Название: Re: Связывание сигналов после приведения типа
Отправлено: mutineer от Апрель 26, 2013, 13:06
Откуда уверенность что сигнал точно испускается? В консоль в рантайме выводится что-то про этот коннект? В концах коньков что коннект возвращает?


Название: Re: Связывание сигналов после приведения типа
Отправлено: ibnz от Апрель 26, 2013, 13:19
Пардон муа, в моем случае все оказалось банально до безобразия. Нужный сигнал испускался один раз до создания того объекта. Всем спасибо, это все мои душевные метания в состоянии затупа и затыка... Надо было сходить покурить)