0

我有一个 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。
我尝试从 中制作QListor ,但没有运气。QTableViewobject

如何获取 ListElements 的值?

4

1 回答 1

4

作为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!"; }
于 2017-11-23T17:12:55.267 回答