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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Отсутствие Properties  (Прочитано 3200 раз)
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« : Июнь 10, 2011, 01:26 »

Добрый вечер

Есть приложение которое грузит свои плагины. Задача сделать систему которая позволяла бы авторам плагинов создавать UI интерактивно, т.к. плагины в основном занимаются глухими расчетами. Интерфейс обмена данными хост-плагин очень прост, выглядит так
Код
C++ (Qt)
// (экспортируемая) ф-ция плагина (dll) которая вызывается хостом
int SetPluginData( void * theData, size_t theDataSize )
{
if (theDataSize != sizeof(CPluginData)) return error_InvalidData;
*pluginData = *(CPluginData *) theData;   // простейший случай
return noError;
}
 
// формат данных плагина (пример)
struct CPluginData {
unsigned int mID;
float mParam1;
int mParam2;
... // др. параметры
};
 
Нет проблем нарисовать UI интерактивно с помощью любого редактора (используются нативные ресурсы). Но вот беда - нарисованные айтемы не могут иметь custom properties, есть только ID айтема (целое уникальное число). Хост может загрузить и крутить нарисованное UI, но ему нужно как-то определить какие айтемы должны подаваться плагину (ну понятно не сами айтемы а введенные пользователем значения). Также нужны атрибуты которых в UI нет, напр

- тип айтема - напр EditLine может быть float, int, string
- флаг "параметр имеет пределы" и  min/max значения
- неск др (в том же плане)

Как бы Вы это решали?

Спасибо
« Последнее редактирование: Июнь 10, 2011, 02:21 от Igors » Записан
Авварон
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3260


Просмотр профиля
« Ответ #1 : Июнь 10, 2011, 06:35 »

Если надо чтобы плагин предоставлял УЙ, пусть предоставлят готовый виджет. Другое дело как хост эти виджеты компоновать должен, я под эту целую системку написал.
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #2 : Июнь 10, 2011, 08:18 »

Если надо чтобы плагин предоставлял УЙ, пусть предоставлят готовый виджет. Другое дело как хост эти виджеты компоновать должен, я под эту целую системку написал.
плагин предоставляет готовый виджет (часть UI) - то есть каждому плагину соответствует заранее подготовленный файл ресурсов. Но плагин не имеет никакого кода занимающегося UI - задача сделать это в хосте.
Записан
Авварон
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3260


Просмотр профиля
« Ответ #3 : Июнь 10, 2011, 08:52 »

Пишите тогда понятнее. Который раз читаю ваши темы и не понимаю "а чо нада-то".
Помимо готового виджета я указывал из плагина в какую область поместить (в какой-то из доков или центр, допустим). Порядок внутри области задается весами. Если плагин у вас сам не может предоставить эту информацию, можно рядом с плагином класть инишник, в к-ом и писать нужные значения.
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #4 : Июнь 10, 2011, 10:32 »

Пишите тогда понятнее. Который раз читаю ваши темы и не понимаю "а чо нада-то".
Не все вещи должны быть понятны моментально и не все сводятся к тому какую страницу Ассыстента открыть  Улыбающийся

Помимо готового виджета я указывал из плагина в какую область поместить (в какой-то из доков или центр, допустим). Порядок внутри области задается весами. Если плагин у вас сам не может предоставить эту информацию, можно рядом с плагином класть инишник, в к-ом и писать нужные значения.
Куда помещать - вопрос не стоит. Пользователь управляет плагином из хоста. Dbl-click на объект плагина - открылся его модальный диалог, ввел значения, нажал Ок, плагин зарядился новыми данными и пошел считать. Это вполне устраивает. Проблема вот в этом
Хост может загрузить и крутить нарисованное UI, но ему нужно как-то определить какие айтемы должны подаваться плагину (ну понятно не сами айтемы а введенные пользователем значения). Также нужны атрибуты которых в UI нет
Записан
Авварон
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3260


Просмотр профиля
« Ответ #5 : Июнь 10, 2011, 10:48 »

А, ну я не так понял. На сем умываю руки, надоело читать малопонятные тексты:)
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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