Здравствуйте, гость ( Вход | Регистрация )
wiz29 | Дата 13.4.2011, 9:07 |
И еще вопросик как из сообщения о закрытии от виджета узнать какой экземпляр плагина в QList создал этот виджет? По Parent? Узнать оч просто, тк за твоими указателями на QObject* стоит некий плагин, он соответственно реализует некий интерфейс предоставляющий указатель QWidget*, простым проходом по списку плагинов и сравнением сответсвующих указателей на виджеты, либо хранить в приложении вместо списка плагинов ассоциативный массив с парами <QWidget*, QObject*>, тогда не нужно будет морочиться с кастами к тому или иному интерфейсу. |
|
fogi | Дата 12.4.2011, 17:48 |
ну тогда сделай интерфейс ко всем плагинам с методом получения QWidget*, далее установи eventFilters для этих окошек и, отловив QEvent::close , выгрузи соответствующий плагин , ну, соответственно, со всеми синхронизирующими вызовами. А примерчика такой системы не найдется? И еще вопросик как из сообщения о закрытии от виджета узнать какой экземпляр плагина в QList создал этот виджет? По Parent? |
|
wiz29 | Дата 12.4.2011, 15:51 |
ну тогда сделай интерфейс ко всем плагинам с методом получения QWidget*, далее установи eventFilters для этих окошек и, отловив QEvent::close , выгрузи соответствующий плагин , ну, соответственно, со всеми синхронизирующими вызовами. | |
fogi | Дата 12.4.2011, 15:35 |
1. в приложении можно хранить список QObject* 2. с плагином всегда связан некий QWidget? 1. где то так и собираюсь сделать. 2. Да, суть плагина создать дочернее окно и отображать в нем данные. Нужно чтобы при закрытии окна экземпляр плагина удалялся из QList |
|
wiz29 | Дата 12.4.2011, 13:34 |
Пока не разобрался с менеджером плагинов. Может кто нибудь поможет выбрать верный путь? 1. Есть mdi приложение. 2. Окна в mdi приложении создаются плагинами. 3. Функцией плагина меняется информация в созданном окне. Вопросы следующие: 1. Как лучше хранить экземпляры загруженных плагинов? 2. Как перехватить вызов закрытия окна прагина, и выгрузить соответствующий плагин из хранилища плагинов. 1. в приложении можно хранить список QObject* 2. с плагином всегда связан некий QWidget? |
|
fogi | Дата 12.4.2011, 13:27 |
Пока не разобрался с менеджером плагинов. Может кто нибудь поможет выбрать верный путь? 1. Есть mdi приложение. 2. Окна в mdi приложении создаются плагинами. 3. Функцией плагина меняется информация в созданном окне. Вопросы следующие: 1. Как лучше хранить экземпляры загруженных плагинов? 2. Как перехватить вызов закрытия окна прагина, и выгрузить соответствующий плагин из хранилища плагинов. |
|
fogi | Дата 6.4.2011, 15:32 |
Фабрику плагинов ты можешь написатьсам, смотри в сторону патерна "Factory", у А.Александреску есть достаточно наглядные примеры создания фабрик. Менеджер плагинов думаю будет зависеть от назначения и типов плагинов для твоего приложения. Спасибо |
|
wiz29 | Дата 5.4.2011, 10:45 |
%QTDIR%\examples и Асистент, с описанием примера плагина. Вроде Plug&Paint называется Это я все изучил, там все просто. Интересен пример фабрики плагинов, и менеджера плагинов. Ничего доступного для своего понимания пока не нашел.. Увы.. Фабрику плагинов ты можешь написатьсам, смотри в сторону патерна "Factory", у А.Александреску есть достаточно наглядные примеры создания фабрик. Менеджер плагинов думаю будет зависеть от назначения и типов плагинов для твоего приложения. |
|
fogi | Дата 5.4.2011, 10:00 |
%QTDIR%\examples и Асистент, с описанием примера плагина. Вроде Plug&Paint называется Это я все изучил, там все просто. Интересен пример фабрики плагинов, и менеджера плагинов. Ничего доступного для своего понимания пока не нашел.. Увы.. |
|
Litkevich Yuriy | Дата 4.4.2011, 18:13 |
Полегче чтонить есть? %QTDIR%\examples и Асистент, с описанием примера плагина. Вроде Plug&Paint называется |
|
Просмотр темы полностью (откроется в новом окне) | |
Текстовая версия | Сейчас: 29.3.2024, 18:27 |