Sur cette page

Package QML Type

Spécifie une collection d'éléments nommés. En savoir plus...

Import Statement: import QtQml.Models

Propriétés associées

Description détaillée

Le type Package est utilisé conjointement avec l'DelegateModel pour permettre à des délégués disposant d'un contexte partagé d'être fournis à plusieurs vues.

Tout élément d’un Package peut se voir attribuer un nom via la propriété attachée « Package.name ».

L'exemple ci-dessous crée un Package contenant deux éléments nommés : « list » et « grid ». Le troisième élément du Package ( Rectangle) est associé au délégué dans lequel il doit apparaître. Cela permet à un élément de passer d'une vue à l'autre.

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 }
                }
            }
        ]
    }
}

Ces éléments nommés sont utilisés comme délégués par les deux vues qui font référence à la propriété spéciale « DelegateModel::parts » pour sélectionner un modèle fournissant le délégué choisi.

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
}

Remarque : « Package » fait partie de « QtQml.Models » depuis la version 2.14 et de « QtQuick » depuis la version 2.0. L’importation de « Package » via « QtQuick » est obsolète depuis Qt 5.14.

Voir également Exemples deQt Quick - Vues et Qt Qml.

Documentation sur les propriétés associées

Package.name : string [attached]

Cette propriété associée contient le nom d'un élément au sein d'un 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.