问题描述
在关于 customizing the Quick Controls 2 ComboBox 的 Qt QML 文档中,它显示:
popup: Popup {
y: control.height - 1
width: control.width
implicitHeight: contentItem.implicitHeight
padding: 1
contentItem: ListView {
clip: true
implicitHeight: contentHeight
model: control.popup.visible ? control.delegateModel : null
...
为什么它引用 control.delegateModel
而不是只引用 control.model
? delegateModel
属性记录在哪里? (在任何地方都找不到)。
解决方法
代表展示数据项。 delegateModel
结合了模型和将为每个项目实例化的原型委托。它的关键属性是 model
和 delegate
。 DelegateModel
是 QtQml.Models
中提供的此概念的实现。
在delegateModel
概念是具有单独的delegate
和model
性质的产物。最终,加入多个属性总是伴随着的情况下这两种模式和代表被使用,和而不是直接将它们添加到控制,它们被封装在一个专用的对象。