我有一个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 :(得分:3)
当QQmlListModel
继承QAbstractItemModel
时,您可以使用此类提供和实现的所有方法。
更具体地说,您将寻找:
rowCount()
告诉您已添加了多少ListItem
index(int row, int column, const QModelIndex &parent = QModelIndex())
您的专栏始终为0
。itemData(const QModelIndex &index)
检索数据。然后您可以轻松地遍历模型。
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!"; }