包 QML 类型
指定一组命名项。 更多信息...
导入语句 | import QtQml.Models |
附加属性
- name : string
详细描述
包类型与 DelegateModel 一起使用,以便将具有共享上下文的代理提供到多个视图中。
包中的任何项目都可以通过 Package.name 附加属性分配一个名称。
以下示例创建一个包含两个命名项的包; list 和 grid。包中的第三个项目(Rectangle)将其父项设置为它应该出现的代理。这使得一项可以在视图之间移动。
Package { Text { id: listDelegate; width: parent.width; height: 25; text: 'Empty'; Package.name: 'list' } Text { id: gridDelegate; width: parent.width / 2; height: 50; text: 'Empty'; Package.name: 'grid' } Rectangle { id: wrapper width: parent.width; height: 25 color: 'lightsteelblue' Text { text: display; anchors.centerIn: parent } state: root.upTo > index ? 'inGrid' : 'inList' states: [ State { name: 'inList' ParentChange { target: wrapper; parent: listDelegate } }, State { name: 'inGrid' ParentChange { target: wrapper; parent: gridDelegate x: 0; y: 0; width: gridDelegate.width; height: gridDelegate.height } } ] transitions: [ Transition { ParentAnimation { NumberAnimation { properties: 'x,y,width,height'; duration: 300 } } } ] } }
这些命名项由两个引用特殊 DelegateModel::parts 属性的两个视图用作代理。
DelegateModel { id: visualModel delegate: Delegate {} model: myModel } ListView { id: lv height: parent.height/2 width: parent.width model: visualModel.parts.list } GridView { y: parent.height/2 height: parent.height/2 width: parent.width cellWidth: width / 2 cellHeight: 50 model: visualModel.parts.grid }
注意:自 2.14 版本起,Packege 是 QtQml.Models 的一部分,并且自 2.0 版本起是 QtQuick 的一部分。自 Qt 5.14 版本起,通过 QtQuick 导入 Package 已被弃用。
另请参阅:Qt Quick 示例 - 视图 和 Qt Qml。
附加属性文档
Package.name : string |
此附加属性持有包中项的名称。
© 2024 Qt 公司有限公司。此处包含的文档贡献是各自所有者的版权。此处提供的文档是根据由自由软件基金会发布的 GNU 自由文档许可证 1.3 版本 许可的。Qt 和相关标志是芬兰的 Qt 公司及其在全球的子公司和附属公司的 商标。所有其他商标均为其各自所有者的财产。