将函数添加到单个XmlListModel项

时间:2015-03-17 22:42:32

标签: qt qml qt-quick

我是QML和Qt Quick的新手,我想知道如何在XmlListModel中为每个项目添加功能。

XmlListModel {
  id: books
  source: "Books.xml"
  query: "/books"
  XmlRole { name: "price"; query: "@price/string()" }
}

假设价格以美分为单位,我想将每个价格乘以100倍。在另一种编程语言中,我会在getPrice()课程中添加Book函数,但我不会可以访问这里的各个元素。我可以使用索引参数将其添加到XmlListModel,但我觉得它属于单个书籍项目,不是吗?

1 个答案:

答案 0 :(得分:2)

在上面的代码中,您只定义了获取数据的模型和角色,而不是实际数据。但您可以访问数据本身和数据项,尤其是delegate,例如:

ListView {
    id: listView
    anchors.fill: parent
    function getPrice(value) {
        return value * 100;
    }
    model: books
    delegate: Row {
        height: 30
        width: parent.width
        Text { text: listView.getPrice(price) }
    }
}