XmlListModel QML Type

用于使用 XML 数据指定只读模型。更多

Import Statement: import QtQml.XmlListModel

属性

方法

详细说明

要使用该元素,您需要导入包含以下内容的模块:

import QtQml.XmlListModel

XmlListModel 用于从 XML 数据创建只读模型。它可用作视图元素(如 ListView、PathView、GridView)和其他与模型数据交互的元素(如 Repeater)的数据源。

注意: 该模型支持 XPath 查询。它支持简单的斜线分隔路径,可为每个元素选择一个属性。

例如,如果在 https://www.qt.io/blog/rss.xml 有这样一个 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 应为 XML 文档中的每个<item> 生成一个模型项。

XmlListModelRole 对象定义了模型项属性。在这里,每个模型项都有titlepubDatelink 属性,这些属性与其对应的<item>titlepubDatelink 值相匹配(更多示例请参见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 数据不是来自远程源,那么一旦数据被读取,进度就会变为 1.0。

请注意,当进度为 1.0 时,XML 数据已经下载,但此时尚未加载到模型中。请使用 status 属性了解 XML 数据何时被读取并加载到模型中。

另请参阅 statussource


query : string

一个字符串,代表从该模型的XmlListModelRole 对象创建模型项的基本路径。查询应以'/' 开始。


该模型可用的角色。


source : url

XML 数据源的位置。


status : enumeration

指定模型加载状态,可以是以下状态之一:

常量说明
XmlListModel.Null此模型未设置 XML 数据。
XmlListModel.ReadyXML 数据已加载到模型中。
XmlListModel.Loading模型正在读取和加载 XML 数据。
XmlListModel.Error模型加载时发生错误。有关错误的详细信息,请参阅errorString() 。

另请参阅 progress


方法文档

errorString()

如果statusXmlListModel.Error,则返回上次发生错误的字符串描述。


reload()

重新加载模型。


© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.