XmlListModel QML Type
用于使用 XML 数据指定只读模型。更多
Import Statement: | import QtQml.XmlListModel |
属性
- count : int
- progress : real
- query : string
- roles : list<XmlListModelRole>
- source : url
- status : enumeration
方法
- errorString()
- reload()
详细说明
要使用该元素,您需要导入包含以下内容的模块:
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 对象定义了模型项属性。在这里,每个模型项都有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 |
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() |
重新加载模型。
© 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.