У меня есть маленькая идея. Это другой подход, но он может работать и в вашем случае. Насколько я понимаю, вы пытаетесь создать менеджер настроек для своего приложения. Например, вы можете использовать QSettings
и сохранять настройки для каждого плагина в другой подгруппе. Например, у вас есть настройки основного приложения и два других плагина.
[Main App]
key1=val1
key2=val2
[Plugin1]
key1=val1
key2=val2
[Plugin1]
key1=val1
key2=val2
Таким образом, вы можете легко создать QDialog
в своем основном приложении и изменить / сохранить настройки. В свою очередь основное приложение уведомляет плагины о том, что настройки изменились и их необходимо перезагрузить. Таким образом, вы инкапсулируете свое основное приложение из ваших плагинов.
обновление
Спасибо за быстрый отзыв. Подход, который я предложил, ориентирован на MainApplication, но его можно изменить, чтобы он был децентрализован. Поскольку QSettings
зависит от приложения, ваши плагины могут сохранять свои настройки в одной конфигурации с основным приложением, как и раньше. Одна из модификаций, которую я бы сделал, заключается в следующем. Вы можете создать QDialog
в своем плагине и изменять настройки без необходимости, чтобы основное приложение было осведомлено об этом процессе.