Тип 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