我是QML和Qt Quick的新手,我想知道如何在XmlListModel中为每个项目添加功能。
XmlListModel {
id: books
source: "Books.xml"
query: "/books"
XmlRole { name: "price"; query: "@price/string()" }
}
假设价格以美分为单位,我想将每个价格乘以100倍。在另一种编程语言中,我会在getPrice()
课程中添加Book
函数,但我不会可以访问这里的各个元素。我可以使用索引参数将其添加到XmlListModel,但我觉得它属于单个书籍项目,不是吗?
答案 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) }
}
}