Spec-Zone.ru › Qt 6.1

Тип QML ListElement

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

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

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

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

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

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

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

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

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

Spec-Zone.ru

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