Spec-Zone.ru › Qt 5.14

Тип QML списка

Тип list относится к списку QML-объектов.

Значение списка можно получить аналогично массиву JavaScript:

  • Значения присваиваются с помощью синтаксиса квадратных скобок [] с перечислением значений через запятую
  • Свойство length предоставляет количество элементов в списке
  • Элементы списка извлекаются с помощью синтаксиса [index]

Значения можно динамически добавлять в список, используя метод push, как в JavaScript-массиве

Тип list может хранить только QML-объекты и не может содержать значения базовых типов. (Для хранения базовых типов в списке используйте тип var.)

При интеграции с C++, обратите внимание, что любое значение QQmlListProperty переданное в QML из C++ автоматически преобразуется в значение list, и наоборот.

Использование типа списка

Например, тип Item имеет свойство states типа списка, которому можно присвоить значение и использовать следующим образом:

import QtQuick 2.0

Item {
    width: 100; height: 100

    states: [
        State { name: "activated" },
        State { name: "deactivated" }
    ]

    Component.onCompleted: {
        console.log("Name of first state:", states[0].name)
        for (var i = 0; i < states.length; i++)
            console.log("state", i, states[i].name)
    }
}

Определенные объекты State будут добавлены в список states в том порядке, в котором они определены.

Если список содержит только один объект, квадратные скобки можно опустить:

import QtQuick 2.0

Item {
    width: 100; height: 100
    states: State { name: "activated" }
}

Обратите внимание, что объекты не могут быть индивидуально добавлены или удалены из списка после создания; для изменения содержимого списка он должен быть переприсвоен новому списку.

Примечание: Тип list не рекомендуется использовать в качестве типа для пользовательских свойств. Следует использовать тип var, так как списки, хранящиеся типом var, можно более гибко изменять внутри QML.

Этот базовый тип предоставляется языком QML.

См. также Основные типы QML.

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

Spec-Zone.ru

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