ListView {
model: dataModel
delegate: Column {
id: delegate
Row {
Repeater {
model: 1
ItemDelegate {
id:columnDelegate
text:name
}
}
}
}
}
代替text:name我可以将模型列名称作为属性传递,有什么方法可以动态分配模型列名称吗??
ListView {
property var columnName //pass column name as property
model: dataModel
delegate: Column {
id: delegate
Row {
Repeater {
model: 1
ItemDelegate {
id:columnDelegate
text:columnName //assign property as column name here
}
}
}
}
}
像这样的事情有可能吗?有什么办法可以解决这个问题? 我可以将模型列名称作为数组传递吗?
答案 0 :(得分:0)
如果您正在使用数组数据,并希望将其用作model
中的repeater
,则可以执行以下操作:
Column {
Repeater {
model: ["apples", "oranges", "pears"]
text: modelData
}
}
如果要从网络服务器中获取更多深度数据(例如JSON),您还可以查看诸如
property var arrayData: {apples: {type: "fruit", colour: "green"}, oranges: {type: "fruit", colour: "orange"}, pears: {type: "fruit", colour: "green"}}
model: Object.keys(arrayData) //the 'key' (apples/oranges/pears)
text: arrayData.type // all would be 'fruit' in this example
detailText: arrayData.colour // moreso is you are using a `SimpleRow` to display your data`, but an example of usage
如果您的数据将是更多细节对象,那么这对于访问属性非常有用,或者,如第一个示例一样,它还是静态的,或者是一个简单的数组。完美!
我建议您看看Models and Views in QtQuick以获得其他示例来帮助您!
希望有帮助!