Spec-Zone.ru › Qt

Тип 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 были прочитаны и загружены в модель.

См. также status и source.

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

Spec-Zone.ru

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