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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Организация настроек для плагинов приложения  (Прочитано 5416 раз)
Maquefel
Гость
« : Февраль 09, 2012, 15:24 »

Добрый день.

Собственно вопрос, как лучше всего организовать хранение настроек для подключаемых плагинов?
Хранить в общем файле? Сделать отдельно файл для настроек приложения, отдельно для плагинов? Сделать на каждый плагин свой файл?

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

Речь идет о <QtPlugin>.

Или может есть что почитать на эту тему?
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #1 : Февраль 09, 2012, 15:26 »

Да тут как захочешь, так и делай. Улыбающийся
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Maquefel
Гость
« Ответ #2 : Февраль 09, 2012, 15:34 »

Да тут как захочешь, так и делай. Улыбающийся

Ну можно хотя бы добавить: "Вот я обычно..."  Смеющийся
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #3 : Февраль 09, 2012, 15:36 »

Да тут как захочешь, так и делай. Улыбающийся

Ну можно хотя бы добавить: "Вот я обычно..."  Смеющийся
А тут нельзя однозначно ответить - у всего свои плюсы и минусы. Так что делай так, как тебе проще.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #4 : Февраль 09, 2012, 15:46 »

По-хорошему надо делать "палетку" в которой пользователь выбирает плагин а затем - один из его пресетов (которые могут быть добавлены/удалены)
Записан
kuzulis
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2812


Просмотр профиля
« Ответ #5 : Февраль 09, 2012, 15:54 »

Имхо, лучше все в один файл свалить, при этом, определить для себя какой-то один обобщенный интерфейс доступа к этому файлу.

Например, само приложение имеет некий конфиг app.cfg.
При выборе из меню приложения конкретного плагина и его загрузке,
можно передавать в плагин путь к этому конфигу и тогда плагин будет уже
сам "гадить" в этоот конфиг.

Для каждого плагина в конфиге определить какую то секцию, т.е. по секциям разбить конфиг и т.п.
и тогда не нужно будет шмыгаться по куче конфигов в поисках нужного...

Или что-то типа диалога между приложением и плагинами, например:
app: гружу плагин по пути ...\... (который задается пользователем в менющке или еще как)
app: эй, плагин, дай свое имя (идентификацию)
plg: на name=SuperPlugin
app: спс, значит на тебе путь к конфигу ../../app.cfg и имя секции в которую будешь гадить: SuperPlugin
plg: спс, начинаю инициализироваться, читать свои настройки, гадить и т.п.

Как то так, ИМХО.  Улыбающийся
« Последнее редактирование: Февраль 09, 2012, 16:01 от kuzulis » Записан

ArchLinux x86_64 / Win10 64 bit
Maquefel
Гость
« Ответ #6 : Февраль 09, 2012, 16:01 »

Имхо, лучше все в один файл свалить, при этом, определить для себя какой-то один обобщенный интерфейс доступа к этому файлу.

Например, само приложение имеет некий конфиг app.cfg.
При выборе из меню приложения конкретного плагина и его загрузке,
можно передавать в плагин путь к этому конфигу и тогда плагин будет уже
сам "гадить" в этоот конфиг.

Для каждого плагина в конфиге определить какую то секцию, т.е. по секциям разбить конфиг и т.п.
и тогда не нужно будет шмыгаться по куче конфигов в поисках нужного...

Как то так, ИМХО.

Ну обобщенный интерфейс это понятно -QSettings. Можно дать отдельный файл плагинам и классу, который отвечает за их загрузку, инициализацию. А вот инетресно следует ли отслеживать удаление плагина, чтобы убрать его секцию из настроек?
Записан
Maquefel
Гость
« Ответ #7 : Февраль 09, 2012, 16:02 »

По-хорошему надо делать "палетку" в которой пользователь выбирает плагин а затем - один из его пресетов (которые могут быть добавлены/удалены)

Вот этого момента не понял, можно поподробнее?
Записан
kuzulis
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2812


Просмотр профиля
« Ответ #8 : Февраль 09, 2012, 16:03 »

А зачем? Что, при каждом запуске приложения оно будет все плагины инициализировать с нуля?
А как же загрузка последней конфигурации и т.п.?

Можно просто какой нить параметр в конфиге в секции выставлять в Active=false
(т.е. сам плагин выставляет при своей выгрузке)
« Последнее редактирование: Февраль 09, 2012, 16:05 от kuzulis » Записан

ArchLinux x86_64 / Win10 64 bit
Maquefel
Гость
« Ответ #9 : Февраль 09, 2012, 16:13 »

А зачем? Что, при каждом запуске приложения оно будет все плагины инициализировать с нуля?
А как же загрузка последней конфигурации и т.п.?

Можно просто какой нить параметр в конфиге в секции выставлять в Active=false
(т.е. сам плагин выставляет при своей выгрузке)

Таки да, понял. Спасибо за участие. Кстати ваш плагин на компорты активно пользую  Смеющийся.
Записан
kuzulis
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2812


Просмотр профиля
« Ответ #10 : Февраль 09, 2012, 16:31 »

Это не плагин.
Записан

ArchLinux x86_64 / Win10 64 bit
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #11 : Февраль 09, 2012, 16:35 »

Это не плагин.
Цитировать
- Эх, Маша, хорошо-то как..
- Да я не Маша!
- Все равно хорошо..
Записан
Maquefel
Гость
« Ответ #12 : Февраль 09, 2012, 16:47 »

Это не плагин.

Уже плагин.
Записан
iroln
Гость
« Ответ #13 : Февраль 09, 2012, 19:25 »

Я писал приложение с плагинами, настройками плагинов управлял через QSettings. Просто настройки каждого плагина хранились в своей группе, вот и всё. При инициализации/деинициализации плагинов настройки читались/записывались объектом QSettings. В общем то ничего сложного тут нет.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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