在QML界面设计例如ListView中,通过设计delegate来显示代理model中的数据,在delegate中使用属性绑定的方式将model中对象的值显示出来,但如果delegate中使用了Repeater,此时delegate中的model为Repeater的model,显示数据就会出现错误,因此用个小方法:
在delegete中添加属性myModel,将delegate的model赋值于myModel,例如:
var headerList = ["P","V"]
ListModel{
ListElement{
P:"20"
V:"18"
}
ListElement{
P:"25"
V:"12"
}
}
Component{
id:listDelegate
Rectangle{
width: parent.width
height: 40
property var myModel: model
Row{
Repeater{
model:headerList
Label{
width: 80
height: 40
text:myModel[headerList[index]]
}
}
}
}
}