Package QML Type

Specifies a collection of named items. More...

Import Statement: import QtQml.Models

Attached Properties

Detailed Description

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 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'; 'list' }
    Text { id: gridDelegate; width: parent.width / 2; height: 50; text: 'Empty'; '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

GridView {
    y: parent.height/2
    height: parent.height/2
    width: parent.width
    cellWidth: width / 2
    cellHeight: 50

Note: 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.

See also Qt Quick Examples - Views and Qt Qml.

Attached Property Documentation : string

This attached property holds the name of an item within a Package.

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