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 。Qt 5.14 以降、QtQuick を使った Package のインポートは非推奨です。
Attached Property ドキュメント
Package.name : string |
この Attached プロパティは、Package 内のアイテムの名前を保持します。
© 2025 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.