Russian Qt Forum
Ноябрь 25, 2024, 09:37 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Обработка сигналов между окнами в плагинах  (Прочитано 3134 раз)
VozaMFC
Гость
« : Август 26, 2010, 16:56 »

Сушу голову как это реализовать.
Допустим есть многодокументное приложение, которое подгружает свои плагины.
в плагинах хранятся окна, а каким образом можно наладить между ними "общение",
может кто делал такое?
Записан
BRE
Гость
« Ответ #1 : Август 26, 2010, 17:11 »

Сушу голову как это реализовать.
Допустим есть многодокументное приложение, которое подгружает свои плагины.
в плагинах хранятся окна, а каким образом можно наладить между ними "общение",
может кто делал такое?
Что значит "в плагинах хранятся окна"?
Общение можно наладить так же как и всегда между объектами, например, используя сигнал-слот.
Разберись с плагинами, посмотри как это реализовано в том же QtCreator. Кстати, на форуме была ссылка на документацию по написанию своих плагинов для QtCreator.
Записан
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #2 : Август 26, 2010, 20:55 »

может подразумевается, что плагины почти ничего не знают друг о друге.

П.С.
Хотя гадать можно долго.
Записан

Юра.
VozaMFC
Гость
« Ответ #3 : Август 27, 2010, 08:21 »

Приложение автоматически подхватывает плагины из определенной папки при запуске, в меню основного
приложения соотвественно появляются пункты конкретного плагина.
Интерфейс обьектов-плагинов одынаков. Плагин получает указатель QMdiArea и помещает туда окно.
Теперь интерес такой, как можно наладить обмен информации между окнами(Одно окно из одного плагина, пустило сигнал второму окну другому плагина, типа обновись)?

Такое может сработать:

сигнал окна1 пошло на слот окна2 и окна3

сигнал окна2 пошло на слот окна1 и окна3

сигнал окна3 пошло на слот окна1 и окна2

И чтобы присоединить между ними  сигнал и слоты, окнам нужно наследоватся от "общего" предка?
Если можно, поверните на путь праведный Улыбающийся
Записан
VozaMFC
Гость
« Ответ #4 : Август 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();
--- все оно в свободном плавании...
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.125 секунд. Запросов: 23.