将XML解析为QML的ListView的不同类型的源

时间:2017-10-30 20:30:56

标签: xml qt listview qml

使用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及其真棒,我非常感谢指向正确方向的指针或一些概念证明的小例子,如果有的话,请先谢谢你们。

0 个答案:

没有答案