Я не вижу проблемы с платформой MVC в QT для этого.
По сути, разница между стандартным отображением таблицы и тем, что вы создаете список, динамически сродни карте:
QMap<QString, QVariant> property_map;
Вы можете сделать:
QList<std::pair<QString, QVariant>> property_list;
, который затем можно использовать для отображения в таблице свойства. Наилучший способ, вероятно, будет:
struct {
QString prop_name;
int prop_type;
QVariant prop_value;
};
QVariant в основном предоставит вам один класс абстракции для хранения данных, и это фактически то, что возвращается функцией data()
внутри QAbstractItemModel
, которую вы можете переопределить.
Таким образом, вы берете список свойств и сводите его к той же таблице, что и данные, к которой относится база данных.
ИЗМЕНЕНО
Если у вас есть виджет, который вы хотите, чтобы этот виджет заполнялся другими предопределенными виджетами, у вас, скорее всего, возникнут многочисленные проблемы, если виджеты не имеют одинакового или четко определенного размера.
Что вы можете сделать, так это в своем виджете Display определить макет, например: QGridLayout или другие возможные макеты, а затем добавить в него другие виджеты, используя некоторый набор параметров, что может быть выполнено, но может быть несколько боли.
Другой подход, который вы можете использовать, - поместить все виджеты свойств впереди на пользовательском интерфейсе дисплея и просто включить те, которые вам нужны, а остальные отключить, но это применимо только в том случае, если у вас есть четко определенное ограниченное число предустановок. разработанные виджеты.