Spec-Zone.ru › Qt 6.1

Пакет QML Type

Определяет коллекцию именованных элементов. Подробнее...

Оператор импорта: import QtQml.Models 2.1
  • Список всех членов, включая унаследованные

Прикрепленные свойства

  • name : строка

Подробное описание

Тип Package используется совместно с DelegateModel для предоставления делегатам с общим контекстом нескольким представлениям.

Любому элементу внутри Package может быть присвоено имя через прикрепленное свойство Package.name.

В примере ниже создается Package, содержащий два именованных элемента; list и grid. Третий элемент в пакете (прямоугольник 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 для выбора модели, которая предоставляет выбранный делегат.

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 является частью QtQml.Models с версии 2.14 и частью QtQuick с версии 2.0. Импорт Package через QtQuick устарел с Qt 5.14.

См. также Примеры Qt Quick - Представления, Демо Qt Quick - Просмотр фотографий и Qt QML.

Документация по прикреплённым свойствам

Package.name : строка

Это прикреплённое свойство содержит имя элемента внутри Package.

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.1/qml-qtqml-models-package.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API