Package QML Type
名前付きアイテムのコレクションを指定する。詳細...
| Import Statement: | import QtQml.Models |
付属プロパティ
- name : string
詳細な説明
Package型は、DelegateModel と共に使用され、共有コンテキストを持つデリゲートを複数のビューに提供できるようにします。
Package内のどの項目にも、Package.name attachedプロパティを介して名前を割り当てることができます。
以下の例では、listと gridの2つの名前付きアイテムを含むPackageを作成しています。パッケージ内の3つ目のアイテム(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 プロパティを参照して、選択されたデリゲートを提供するモデルを選択する2つのビューによって、デリゲートとして使用されます。
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はバージョン2.14以降QtQml.Models 、バージョン2.0以降QtQuick の一部です。QtQuick 経由での Package のインポートは Qt 5.14 以降では非推奨です。
Qt Quick Examples - Viewsおよび Qt Qml.
付属プロパティのドキュメント
Package.name : string
この付属プロパティは Package 内のアイテムの名前を保持する。
© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.