Предположительно, должны быть некоторые ограничения на то, что ваши пользователи могут добавлять и редактировать?
Если это так, то, возможно, вы могли бы использовать более структурированный подход и использовать QWizard для обеспечения простого интерфейсадля проектирования и редактирования форм.Мастер сгенерирует ui
файлов, которые затем будут загружены в ваше приложение с использованием uic-модуля (если вы используете PyQt4, то есть - потому что он не включает класс QUiLoader
).
Конечно, чтобы это работало, вам необходимо адаптировать текущую процедуру для динамического создания форм, чтобы она также работала с ui
файлами.
EDIT
Похоже, что QAbstractFormBuilder
предоставляет API для загрузки и сохранения виджетов в виде файлов пользовательского интерфейса.Он является частью модуля QtDesigner, который теперь включен в PyQt4.
Сказав это, мои краткие эксперименты с методами load()
и save()
не дали очень полезных результатов, но, надеюсь, другие будут иметьбольше удачи.
Лично, если бы я разрабатывал подобное приложение, я бы предпочел сам генерировать файлы пользовательского интерфейса, используя подходящую библиотеку XML (либо Qt, либо один из нескольких модулей стандартной библиотеки Python).Структура макета формы довольно проста и регулярна, поэтому файлы пользовательского интерфейса не должны быть слишком сложными для копирования.Основным преимуществом такой работы является то, что она обеспечивает полный контроль над входом и выходом.