向单个 XmlListModel 项添加函数
Add function to individual XmlListModel items
我是 QML 和 Qt Quick 的新手,想知道如何向 XmlListModel 中的每个单独项目添加功能。
XmlListModel {
id: books
source: "Books.xml"
query: "/books"
XmlRole { name: "price"; query: "@price/string()" }
}
假设价格以美分为单位,我想将每个价格乘以 100。在另一种编程语言中,我会在 Book
class 上添加一个 getPrice()
函数,但是我无权访问此处的各个元素。我可以使用索引参数将它添加到 XmlListModel,但我觉得它属于单个图书项目,不是吗?
在上面的代码中,您只是定义了模型和角色来获取数据,而不是实际数据。但是您可以访问数据本身和数据项,特别是在 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) }
}
}
我是 QML 和 Qt Quick 的新手,想知道如何向 XmlListModel 中的每个单独项目添加功能。
XmlListModel {
id: books
source: "Books.xml"
query: "/books"
XmlRole { name: "price"; query: "@price/string()" }
}
假设价格以美分为单位,我想将每个价格乘以 100。在另一种编程语言中,我会在 Book
class 上添加一个 getPrice()
函数,但是我无权访问此处的各个元素。我可以使用索引参数将它添加到 XmlListModel,但我觉得它属于单个图书项目,不是吗?
在上面的代码中,您只是定义了模型和角色来获取数据,而不是实际数据。但是您可以访问数据本身和数据项,特别是在 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) }
}
}