Название: Обработка сигналов между окнами в плагинах Отправлено: VozaMFC от Август 26, 2010, 16:56 Сушу голову как это реализовать.
Допустим есть многодокументное приложение, которое подгружает свои плагины. в плагинах хранятся окна, а каким образом можно наладить между ними "общение", может кто делал такое? Название: Re: Обработка сигналов между окнами в плагинах Отправлено: BRE от Август 26, 2010, 17:11 Сушу голову как это реализовать. Что значит "в плагинах хранятся окна"?Допустим есть многодокументное приложение, которое подгружает свои плагины. в плагинах хранятся окна, а каким образом можно наладить между ними "общение", может кто делал такое? Общение можно наладить так же как и всегда между объектами, например, используя сигнал-слот. Разберись с плагинами, посмотри как это реализовано в том же QtCreator. Кстати, на форуме была ссылка на документацию по написанию своих плагинов для QtCreator. Название: Re: Обработка сигналов между окнами в плагинах Отправлено: lit-uriy от Август 26, 2010, 20:55 может подразумевается, что плагины почти ничего не знают друг о друге.
П.С. Хотя гадать можно долго. Название: Re: Обработка сигналов между окнами в плагинах Отправлено: VozaMFC от Август 27, 2010, 08:21 Приложение автоматически подхватывает плагины из определенной папки при запуске, в меню основного
приложения соотвественно появляются пункты конкретного плагина. Интерфейс обьектов-плагинов одынаков. Плагин получает указатель QMdiArea и помещает туда окно. Теперь интерес такой, как можно наладить обмен информации между окнами(Одно окно из одного плагина, пустило сигнал второму окну другому плагина, типа обновись)? Такое может сработать: сигнал окна1 пошло на слот окна2 и окна3 сигнал окна2 пошло на слот окна1 и окна3 сигнал окна3 пошло на слот окна1 и окна2 И чтобы присоединить между ними сигнал и слоты, окнам нужно наследоватся от "общего" предка? Если можно, поверните на путь праведный :) Название: Re: Обработка сигналов между окнами в плагинах Отправлено: VozaMFC от Август 27, 2010, 08:33 А еще, тут два уровня получается:
- уровень плагинов, при запуске приложения они подхватились приложением, появились у основном меню приложения, на них поцепились обработчики, при срабатывании которых помещается окно из плагина в "контейнер"(QMdiArea) и все... - второй уровень, окна из плагинов...они наследники QMainWindow, попадают они примерно так: --- на пункт меню основного приложения поцепил слот из плагина --- pI интерфес главного приложения, через него получаю указатель QMdiArea* --- и пихаю туда окно из плагина. QMdiArea* mdiArea = pI->mdiAreaWindows(); QMdiSubWindow* pSubWindow = mdiArea->addSubWindow(окно); pSubWindow->setAttribute(Qt::WA_DeleteOnClose); pSubWindow->setWindowTitle(titleWindow); pSubWindow->show(); --- все оно в свободном плавании... |