QML Data Models 数据模型<一>

本文探讨了QML中的数据模型,特别是QList<QObject*>类型,它用于ListView、GridView和Repeater显示数据。QML允许通过代理(delegate)绑定到model的data roles,即使组件有自己的属性也能正确显示。此外,文章提到了QSringList作为数据模型的一种,并指出在C++中为QML提供数据模型对于大数据量或复杂处理的场景十分关键。
摘要由CSDN通过智能技术生成

        在QML中,ListView、GridView、Repeater 需要数据模型提供数据,然后在显示。而如何显示则需要一个代理(delegate)来定义。模型可以是静态的,也能够动态添加删除或修改。delegate可以绑定到model的date roles 。例如:

 import Qt 4.7

 Item {
     width: 200; height: 250

     ListModel {
         id: myModel
         ListElement { type: "Dog"; age: 8 }
         ListElement { type: "Cat"; age: 5 }
     }

     Component {
         id: myDelegate
         Text { text: type + ", " + age }
     }

     ListView {
         anchors.fill: parent
         model: myModel
         delegate: myDelegate
     }
 }

myModel 有两个roles ,type和age,在delegate中Text用到了这两个roles 

Text { text: type + ", " + age }

如果Text自己有type和age属性怎么办?这时我们可以用myModel.type、myModel.age来代替type和age,否则显示的将是Text的属性(property);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值