Spec-Zone.ru › Qt 5.6

Тип QML ListElement

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

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

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

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

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

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

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

Имена ролей используются делегатами для получения данных из элементов списка. Каждое имя роли доступно в области видимости делегата и ссылается на соответствующую роль в текущем элементе. В тех случаях, когда имя роли может быть неоднозначным для использования, к нему можно обратиться через свойство 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/archives/qt-5.6/qml-qtqml-models-listelement.html

Spec-Zone.ru

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