使用QML,我有通常XmlListModel
,我在启动时手动加载我的应用程序中的数据。然后,此数据显示在ListView
中。最后,我可以保存相同的数据,循环访问listview的索引并创建“XML”字符串,我动态修补这些字符串以再次创建相同的整个XML并使用C ++的QTextStream
将其保存到磁盘。简单明了。
我现在想要编辑ListView
中的数据(更新委托中的数据,删除或创建新索引),然后保存这些更改,制作类似“小XML编辑器”的内容。
我的问题是:如何将更改后的数据保存到dataModel
的{{1}}?我想我可以再次循环通过每个索引并以某种方式添加,删除某些索引或更新它们,将这些更改保存在XML文件中,然后再次加载以反映列表视图中的这些更改,但这听起来很复杂,我希望有一种更好,更清洁的方式。
是否有C ++方式来操纵ListView
s的数据模型?
我可以将XML数据传输到C ++并将其用作listView的源,该方法是否可以更好,更轻松地操作数据模型?我想避免为每次更改创建和加载XML文件。
ListView
的快速和小例子:
ListView
XmlListModel {
id: model
query: "/item"
XmlRole {name: "title"; query: "title/string()"}
XmlRole {name: "lang"; query: "@lang/string()"}
XmlRole {name: "category"; query: "category/string()"}
}
ListView {
id: view
anchors.fill: parent
model: model
delegate: modelDelegate
currentIndex: 0
}
由于我到目前为止仍在学习QML及其真棒,我非常感谢指向正确方向的指针或一些概念证明的小例子,如果有的话,请先谢谢你们。