Тип QML XmlListModel
Для задания только для чтения модели с использованием данных XML. Подробнее...
| Заявление об импорте: | import QtQml.XmlListModel |
Свойства
- count : int
- progress : real
- query : string
- roles : list<XmlListModelRole>
- source : url
- status : перечисление
Методы
- errorString()
- reload()
Подробное описание
Для использования этого элемента необходимо импортировать модуль с помощью следующей строки:
import QtQml.XmlListModel
XmlListModel используется для создания модели только для чтения из данных XML. Он может использоваться в качестве источника данных для элементов представления (например, ListView, PathView, GridView) и других элементов, взаимодействующих с данными модели (например, Repeater).
Примечание: Эта модель не поддерживает запросы XPath. Она поддерживает простые пути, разделенные косыми чертами, и, необязательно, по одному атрибуту для каждого элемента.
Например, если есть документ XML по адресу https://www.qt.io/blog/rss.xml такого вида:
<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
...
<channel>
<item>
<title>Qt 6.0.2 Released</title>
<link>https://www.qt.io/blog/qt-6.0.2-released</link>
<pubDate>Wed, 03 Mar 2021 12:40:43 GMT</pubDate>
</item>
<item>
<title>Qt 6.1 Beta Released</title>
<link>https://www.qt.io/blog/qt-6.1-beta-released</link>
<pubDate>Tue, 02 Mar 2021 13:05:47 GMT</pubDate>
</item>
<item>
<title>Qt Creator 4.14.1 released</title>
<link>https://www.qt.io/blog/qt-creator-4.14.1-released</link>
<pubDate>Wed, 24 Feb 2021 13:53:21 GMT</pubDate>
</item>
</channel>
</rss> XmlListModel может создать модель из этих данных, например так:
import QtQml.XmlListModel
XmlListModel {
id: xmlModel
source: "https://www.qt.io/blog/rss.xml"
query: "/rss/channel/item"
XmlListModelRole { name: "title"; elementName: "title" }
XmlListModelRole { name: "pubDate"; elementName: "pubDate" }
XmlListModelRole { name: "link"; elementName: "link" }
} Значение query "/rss/channel/item" указывает, что XmlListModel должен генерировать элемент модели для каждого <item> в документе XML.
Объекты XmlListModelRole определяют атрибуты элемента модели. Здесь каждый элемент модели будет иметь атрибуты title, pubDate и link, соответствующие значениям title, pubDate и link соответствующего <item>. (См. документацию XmlListModelRole для получения дополнительных примеров.)
Модель может быть использована в ListView, например, так:
ListView {
width: 180; height: 300
model: xmlModel
delegate: Text { text: title + ": " + pubDate + "; link: " + link }
} Данные XmlListModel загружаются асинхронно, и status устанавливается в XmlListModel.Ready после завершения загрузки. Обратите внимание, что это означает, что при использовании XmlListModel для представления, представление не отображается, пока модель не загрузится.
Документация по свойствам
count : int
Количество записей данных в модели.
progress : real
Этот параметр указывает текущую степень выполнения загрузки источника данных XML. Значение находится в диапазоне от 0,0 (нет загруженных данных) до 1,0 (все данные загружены). Если данные XML не из удаленного источника, progress становится 1,0 сразу после чтения данных.
Обратите внимание, что при progress = 1,0 данные XML были загружены, но еще не загружены в модель на этом этапе. Используйте свойство status, чтобы узнать, когда данные XML были прочитаны и загружены в модель.
query : string
Строка, представляющая базовый путь для создания элементов модели из объектов XmlListModelRole этой модели. Запрос должен начинаться с '/'.
roles : list<XmlListModelRole>
Роли, которые должны быть доступны для этой модели.
source : url
Расположение источника данных XML.
status : enumeration
Определяет статус загрузки модели, который может быть одним из следующих:
- XmlListModel.Null - Данные XML не были заданы для этой модели.
- XmlListModel.Ready - Данные XML были загружены в модель.
- XmlListModel.Loading - Модель находится в процессе чтения и загрузки данных XML.
- XmlListModel.Error - При загрузке модели произошла ошибка. Подробнее об ошибке см. errorString().
См. также progress.
Документация по методам
errorString()
Возвращает строку с описанием последней ошибки, если status равен XmlListModel.Error.
reload()
Перезагружает модель.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.2/qml-qtqml-xmllistmodel-xmllistmodel.html