指定命名项的集合。 更多...
导入语句: | import QtQml.Models 2.2 |
The Package type is used in conjunction with DelegateModel to enable delegates with a shared context to be provided to multiple views.
Any item within a Package may be assigned a name via the Package.name attached property.
The example below creates a Package containing two named items; list and grid . The third item in the package (the Rectangle ) is parented to whichever delegate it should appear in. This allows an item to move between views.
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 } } } ] } }
These named items are used as the delegates by the two views who reference the special DelegateModel::parts property to select a model which provides the chosen delegate.
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 }
注意: Package is part of QtQml .Models since version 2.14 and part of QtQuick since version 2.0. Importing Package via QtQuick is deprecated since Qt 5.14.
另请参阅 Qt Quick 范例 - 视图 , Qt Quick 演示 - 照片查看器 ,和 Qt QML .
Package.name : string |
This attached property holds the name of an item within a Package.