Мой гавна язычок для описания диалогов настроек все больше смахивает на какой-то XAML. Вот за вчера-сегодня добавил датасорсы, например:
imagebin.ca
В разметке диалога просто пишем <item type="dataview" property="ReposList" />, а хендлер итема с этим типом отрисовывает уже tree view и кнопочки для добавления/удаления. Менеджер XML-диалогов обрел функцию SetDataSource (QString propName, QAbstractItemModel *model) — устанавливает переданную модель как источник данных для dataview с данным property. А при Add, например, модель опрашивается на предмет «добавлябельных» элементов и их типов, и в рантайме генерируется диалог для добавления еще одного ряда.
Вообще говоря, датасорсы можно ставить и некоторым другим элементам — например, комбобоксам. Так реализовано динамическое определение и выбор установленных языков:
imagebin.ca