роль и никакой поиск, нет необходимости реализовывать сигналы изменения данных для ролей и так далее ... просто peasy
едлагает возможность комбинировать модели C ++ с QMLи предлагает три подхода в документах:
QStringList
QObjectList
QAbstractItemModel
Два первых чрезвычайно просты в использовании, например,QObjectList
:
// in C++
QList<QObject*> dataList;
dataList.append(new DataObject("Item 1", "red"));
// in QML
ListView {
model: dataList
delegate: Text { text: name }
}
но они оба приходят с сильным предостережением:
Примечание. Представление не может знать, что содержимое QList изменилось. Если QList изменяется, необходимо сбросить модель [...]
QAbstractItemModel
Трудно использовать с объектами, потому что свойства объектов не отображаются напрямую, и поэтому их синхронизация требует значительных усилий.
Тем не менее, можно обернутьQList
вQAbstractItemModel
и получить супер простую модель. Посмотреть здесь:Реализация 1, Реализация 2
Есть ли причина, почему Qt не реализует это изначально? Спектакль? Проблемы с управлением памятью? Кажется, такая явно хорошая идея и сObjectModel
они уже реализуют нечто подобное.