Auf dieser Seite

Package QML Type

Gibt eine Sammlung benannter Elemente an. Mehr...

Import Statement: import QtQml.Models

Angehängte Eigenschaften

Ausführliche Beschreibung

Der Typ „Package“ wird in Verbindung mit „ DelegateModel “ verwendet, um Delegaten mit einem gemeinsamen Kontext für mehrere Ansichten bereitzustellen.

Jedem Element innerhalb eines Pakets kann über die angehängte Eigenschaft „ Package.name “ ein Name zugewiesen werden.

Das folgende Beispiel erstellt ein „Package“, das zwei benannte Elemente enthält: „list“ und „grid“. Das dritte Element im „Package“ (das „ Rectangle “) wird dem jeweiligen Delegaten untergeordnet, in dem es erscheinen soll. Dadurch kann ein Element zwischen Ansichten verschoben werden.

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

Diese benannten Elemente werden von den beiden Ansichten als Delegaten verwendet, die auf die spezielle Eigenschaft „ DelegateModel::parts “ verweisen, um ein Modell auszuwählen, das den gewählten Delegaten bereitstellt.

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
}

Hinweis: „Package“ ist seit Version 2.14 Teil von „ QtQml.Models “ und seit Version 2.0 Teil von „ QtQuick “. Das Importieren von „Package“ über „ QtQuick “ ist seit Qt 5.14 veraltet.

Siehe auch Qt Quick Beispiele – Ansichten und Qt Qml.

Dokumentation zu angehängten Eigenschaften

Package.name : string [attached]

Diese zugehörige Eigenschaft enthält den Namen eines Elements innerhalb eines Pakets.

© 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.