Spec-Zone.ru › Qt 5.11

Пакет QML Type

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

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

Присоединенные свойства

  • name : строка

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

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

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

В примере ниже создается пакет, содержащий два именованных элемента: 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
}

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

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

Package.name : строка

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

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

Spec-Zone.ru

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