crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )


  Ответ в Копии плагина в приложении
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
 

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
wiz29 Дата 13.4.2011, 9:07
 
Цитата(fogi @ 12.4.2011, 18:48) *
И еще вопросик как из сообщения о закрытии от виджета узнать какой экземпляр плагина в QList создал этот виджет? По Parent?

Узнать оч просто, тк за твоими указателями на QObject* стоит некий плагин, он соответственно реализует некий интерфейс предоставляющий указатель QWidget*, простым проходом по списку плагинов и сравнением сответсвующих указателей на виджеты, либо хранить в приложении вместо списка плагинов ассоциативный массив с парами <QWidget*, QObject*>, тогда не нужно будет морочиться с кастами к тому или иному интерфейсу.
fogi Дата 12.4.2011, 17:48
 
Цитата(wiz29 @ 12.4.2011, 16:51) *
ну тогда сделай интерфейс ко всем плагинам с методом получения QWidget*, далее установи eventFilters для этих окошек и, отловив QEvent::close , выгрузи соответствующий плагин , ну, соответственно, со всеми синхронизирующими вызовами.


А примерчика такой системы не найдется?

И еще вопросик как из сообщения о закрытии от виджета узнать какой экземпляр плагина в QList создал этот виджет? По Parent?
wiz29 Дата 12.4.2011, 15:51
  ну тогда сделай интерфейс ко всем плагинам с методом получения QWidget*, далее установи eventFilters для этих окошек и, отловив QEvent::close , выгрузи соответствующий плагин , ну, соответственно, со всеми синхронизирующими вызовами.
fogi Дата 12.4.2011, 15:35
 
Цитата(wiz29 @ 12.4.2011, 14:34) *
1. в приложении можно хранить список QObject*
2. с плагином всегда связан некий QWidget?


1. где то так и собираюсь сделать.
2. Да, суть плагина создать дочернее окно и отображать в нем данные. Нужно чтобы при закрытии окна экземпляр плагина удалялся из QList
wiz29 Дата 12.4.2011, 13:34
 
Цитата(fogi @ 12.4.2011, 14:27) *
Пока не разобрался с менеджером плагинов. Может кто нибудь поможет выбрать верный путь?
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
 
Цитата(wiz29 @ 5.4.2011, 11:45) *
Фабрику плагинов ты можешь написатьсам, смотри в сторону патерна "Factory", у А.Александреску есть достаточно наглядные примеры создания фабрик.
Менеджер плагинов думаю будет зависеть от назначения и типов плагинов для твоего приложения.


Спасибо
wiz29 Дата 5.4.2011, 10:45
 
Цитата(fogi @ 5.4.2011, 10:00) *
Цитата(Litkevich Yuriy @ 4.4.2011, 19:13) *
%QTDIR%\examples и Асистент, с описанием примера плагина. Вроде Plug&Paint называется


Это я все изучил, там все просто. Интересен пример фабрики плагинов, и менеджера плагинов.
Ничего доступного для своего понимания пока не нашел.. Увы..

Фабрику плагинов ты можешь написатьсам, смотри в сторону патерна "Factory", у А.Александреску есть достаточно наглядные примеры создания фабрик.
Менеджер плагинов думаю будет зависеть от назначения и типов плагинов для твоего приложения.
fogi Дата 5.4.2011, 10:00
 
Цитата(Litkevich Yuriy @ 4.4.2011, 19:13) *
%QTDIR%\examples и Асистент, с описанием примера плагина. Вроде Plug&Paint называется


Это я все изучил, там все просто. Интересен пример фабрики плагинов, и менеджера плагинов.
Ничего доступного для своего понимания пока не нашел.. Увы..
Litkevich Yuriy Дата 4.4.2011, 18:13
 
Цитата(fogi @ 4.4.2011, 18:38) *
Полегче чтонить есть?
%QTDIR%\examples и Асистент, с описанием примера плагина. Вроде Plug&Paint называется
Просмотр темы полностью (откроется в новом окне)
RSS Текстовая версия Сейчас: 28.3.2024, 13:40