XmlListModel QML Type
用于使用 XML 数据指定只读模型。更多内容...
| Import Statement: | import QtQml.XmlListModel |
属性
- count : int
- progress : real
- query : string
- roles : list<XmlListModelRole>
- source : url
- status : enumeration
方法
- string errorString()
- void reload()
详细说明
要使用此元素,您需要通过以下代码行导入该模块:
import QtQml.XmlListModelXmlListModel 用于从 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" }
}“/rss/channel/item”的query 值指定XmlListModel应为XML文档中的每个<item> 生成一个模型项。
XmlListModelRole 对象定义了模型项的属性。在此示例中,每个模型项将具有title 、pubDate 和link 属性,这些属性分别对应其相应<item> 中的title 、pubDate 和link 值。(更多示例请参阅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 数据何时已被读取并加载到模型中。
query : string
一个字符串,表示从该模型的XmlListModelRole 对象创建模型项时的基路径。查询应以'/' 开头。
roles : list<XmlListModelRole>
此模型可提供的角色。
source : url
XML 数据源的位置。
status : enumeration
指定模型加载状态,可选值如下:
| 常量 | 描述 |
|---|---|
XmlListModel.Null | 此模型尚未设置任何 XML 数据。 |
XmlListModel.Ready | XML 数据已加载到模型中。 |
XmlListModel.Loading | 该模型正在读取并加载 XML 数据。 |
XmlListModel.Error | 模型加载过程中发生错误。有关该错误的详细信息,请参阅errorString()。 |
另请参阅 progress 。
方法文档
string errorString()
如果 `status ` 的值为 `XmlListModel.Error`,则返回对最后一次发生错误的字符串描述。
void reload()
重新加载模型。
© 2026 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.