qt — Как получить доступ к qml ListElement из переполнения стека

У меня есть ListModel:

ListModel {
ListElement {
property: "value"}
ListElement {
property: "value2"}
}

к которому я пытаюсь получить доступ из класса C ++ Qt.

Мне удалось получить ссылку на listmodel:

QQmlEngine engine;
QQmlComponent component(&engine,
QUrl("qrc:///path.qml"));
QObject *object = component.create();

Отладка объекта дает мне QQmlListModel(adress),
object -> chlidren() не дает мне ничего, object -> children().count() показывает 0.
Я пытался сделать QList или же QTableView от object, но без удачи.

Как я могу получить значения ListElements?

0

Решение

Как QQmlListModel наследуется QAbstractItemModel Вы можете использовать все методы, предоставляемые и реализованные этим классом.

Более конкретно вы будете искать:

Тогда вы можете легко перебрать модель.

QQmlComponent component(&engine, "MyQmlListModel.qml");
QObject* o = component.create();
QAbstractListModel* m = qobject_cast<QAbstractListModel*>(o);

if (m != nullptr) {
qDebug() << m->rowCount();
qDebug() << m->data(m->index(0, 0), 0);
}
else { qDebug() << "failed!"; }
3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]