Название: Связывание сигналов после приведения типа Отправлено: 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 Пардон муа, в моем случае все оказалось банально до безобразия. Нужный сигнал испускался один раз до создания того объекта. Всем спасибо, это все мои душевные метания в состоянии затупа и затыка... Надо было сходить покурить)
|