如何从 C++ 访问 qml ListElement

How to access a qml ListElement from c++

我有一个 ListModel:

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

我正在尝试从 C++ Qt 访问它 class。

我已经设法获得对列表模型的引用:

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

调试对象给了我 QQmlListModel(adress)
object -> chlidren() 什么也没给我,object -> children().count() 显示 0。
我尝试从 object 制作 QListQTableView,但没有成功。

如何获取 ListElements 的值?

由于 QQmlListModel 继承了 QAbstractItemModel,您可以使用此 class 提供和实现的所有方法。

更具体地说,您将寻找:

然后您可以轻松地迭代模型。

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!"; }