qml中将JSON数据放入QML模型中
时间: 2023-09-23 13:11:13 浏览: 118
在 QML 中,可以通过 `ListModel` 或者 `ListElement` 来存储数据,并且可以使用 `ListView` 或者 `Repeater` 来将数据显示出来。
下面是一个简单的例子:
```
import QtQuick 2.0
import QtQuick.Window 2.0
Window {
visible: true
width: 400
height: 400
ListModel {
id: jsonModel
}
Component.onCompleted: {
// 从 C++ 代码中传入的 QList<QObject*> 数据
var dataList = jsonModelData
// 遍历数据,并将其添加到 ListModel 中
for (var i = 0; i < dataList.length; i++) {
var data = dataList[i]
jsonModel.append({ "name": data.name, "value": data.value })
}
}
ListView {
anchors.fill: parent
model: jsonModel
delegate: Text {
text: name + ": " + value
font.pixelSize: 20
}
}
}
```
上面的代码中,首先创建了一个 `ListModel` 对象,并在 `Component.onCompleted` 中通过 `QVariant` 的 `jsonModelData` 属性获取从 C++ 代码中传入的 QList 数据,并将其逐一添加到 `ListModel` 中。
最后使用 `ListView` 来展示数据。在 `ListView` 的 `delegate` 中,使用 `Text` 来显示每个数据项中的 `name` 和 `value` 属性。
阅读全文