Spec-Zone.ru › Qt

Тип QML ListElement

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

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

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

Элементы списка определяются внутри определений ListModel и представляют элементы списка, которые будут отображаться с помощью элементов ListView или Repeater.

Элементы списка определяются как и другие элементы QML, за исключением того, что они содержат набор определений роли вместо свойств. Используя тот же синтаксис, что и для определения свойств, роли определяют, как осуществляется доступ к данным, и включают сами данные.

Имена, используемые для ролей, должны начинаться с строчной буквы и должны быть общими для всех элементов в данном модели. Значения должны быть простыми константами: либо строками (в кавычках и необязательно внутри вызова QT_TR_NOOP), логическими значениями (true, false), числами или значениями перечисления (такими как AlignText.AlignHCenter).

Начиная с Qt 5.11, ListElement также позволяет назначать объявление функции роли. Это позволяет определять ListElements с вызываемыми действиями.

Обращение к ролям

Имена ролей используются делегатами для получения данных из элементов списка. Каждое имя роли доступно в области видимости делегата и ссылается на соответствующую роль в текущем элементе. В случае неоднозначности использования имени роли, к нему можно обратиться через свойство model (например, model.cost вместо cost).

Пример использования

В следующей модели определен ряд элементов списка, каждый из которых содержит роли «name» и «cost» со своими значениями.

ListModel {
    id: fruitModel

    ListElement {
        name: "Apple"
        cost: 2.45
    }
    ListElement {
        name: "Orange"
        cost: 3.25
    }
    ListElement {
        name: "Banana"
        cost: 1.95
    }
}

Делегат получает имя и стоимость для каждого элемента, просто ссылаясь на name и cost:

ListView {
    anchors.fill: parent
    model: fruitModel
    delegate: Row {
        Text { text: "Fruit: " + name }
        Text { text: "Cost: $" + cost }
    }
}

См. также ListModel.

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

Spec-Zone.ru

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