[英]How to access a qml ListElement from c++
我有一個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)
會給我一個QQmlListModel(adress)
。
object -> chlidren()
沒有給我任何東西, object -> chlidren()
object -> children().count()
顯示為0。
我嘗試從object
創建QList
或QTableView
,但是沒有運氣。
如何獲取ListElements的值?
由於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!"; }
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.