Название: [РЕШЕНО] Не могу получить сигнал из плагина Отправлено: Hrundel от Августа 23, 2013, 23:02 Всем привет,
хочу воспользоваться сигналом из плагина. Написал в интерфейс: Код: signals: В плагин: Код: signals: Компилятор успешно поглотил. потом добавил строку: Код: connect(state,SIGNAL(ready(int)),this,SLOT(changeStateAutomatical(int))); Вызвалась ошибка. Попробовал конвертнуть обратно приведением qobject_cast<QObject*>(state) Опять пишет ошибку. Вопрос: как решить проблему? как получать сигнал из плагина? Всем спасибо. Название: Re: Не могу получить сигнал из плагина Отправлено: gil9red от Августа 23, 2013, 23:58 Код: signals: может просто: Код: signals: Название: Re: Не могу получить сигнал из плагина Отправлено: Hrundel от Августа 24, 2013, 02:35 Речь идет об интерфейсе = абстрактный класс! Там все функции должны быть только виртуальными.
Вопрос лишь в том - правомочно ли использование сигналов в плагинах и в абстрактных классах? Если да - то как написать правильно линкование со слотом? Название: Re: Не могу получить сигнал из плагина Отправлено: gil9red от Августа 24, 2013, 09:51 http://studff.ru/blog/programming/138.html ;)
Цитировать Вызвалась ошибка. Попробовал конвертнуть обратно приведением qobject_cast<QObject*>(state) И кст, что за ошибка такая?Опять пишет ошибку. Название: Re: Не могу получить сигнал из плагина Отправлено: Hrundel от Августа 24, 2013, 10:28 Во-первых, конечно, большое спасибо за помощь. Уже сам перед сном пришел к решению. Но сравнить с другим проектом тоже полезно.
Отличие в моем проекте было только в том, что я делал как рекомендует Шлее, а именно - наследовался от QObject не в самом интерфейсе, а в плагине. И это не есть хорошо. Так как получается, что плагин вроде как знает о существовании сигналов, а инетерфейс - нет. Проблема решилась в один сек тупым переносом наследования из плагина в интерфейс. И сигнал заработал! gil9red, еще раз спасибо. |