qml XmlListModel详解

1、概述

XmlListModel是QtQuick用于从XML数据创建只读模型的组件。它可以作为各种view元素的数据源,比如ListView、GridView、PathView等;也可以作为其他和model交互的元素的数据源。通过XmlRole定义角色,如name、age和height,并使用XPath查询来提取数据。

2、重要属性
  • source:指定XmlListModel使用的XML文档的位置,可以是一个网络地址,也可以是本地地址。
  • xml:保存用于当前model的XML字符串,应当是UTF-8编码的。当同时指定xml和source时,xml生效。
  • query:XPath表达式,以"/"或"//"起始,作为一个基础的XPath表达式,和XmlRole的query结合使用。
  • roles:XmlRole对象的列表,XmlListModel正是通过它们从XML文档中提取数据的。
  • count:表示当前model内数据的个数。
  • namespaceDeclarations:保存在XPath中使用的命名空间。
  • status:表示model的当前状态,取XmlListModel.Null、XmlListModel.Ready、XmlListModel.Loading、XmlListModel.Error中的一个。
  • progress:表示XML文档的下载进度,取值范围为0.0~1.0,取值为1.0表示下载完成。如果是本地XML,progress会在读取数据时立即变成1.0。
3、重要方法
  • get():可以得到指定索引位置的数据对象,然后可以根据role-name来访问数据。

  • reload():用来重新加载model。如果没有指定关键角色,所有数据都会被删除,然后model将从头构建。如果指定了关键角色,reload()只会添加或更新与关键角色匹配的数据。

    Item {
    width: 300
    height: 480
    Component {
    id: imageDelegate
    Item {
    width: listView.width
    height: 400
    Column {
    Text {
    text: title
    }
    Image {
    source: imageSource
    }
    }
    }
    }
    XmlListModel {
    id: imageModel
    source: "http://feeds.nationalgeographic.com/ng/photography/photo-of-the-day/"
    query: "/rss/channel/item"
    XmlRole { name: "title"; query: "title/string()" }
    XmlRole { name: "imageSource"; query: "substring-before(substring-after(description/string(), 'img src="'), '"')" }
    }
    ListView {
    id: listView
    anchors.fill: parent
    model: imageModel
    delegate: imageDelegate
    }
    }

觉得有帮助的话,打赏一下呗。。

需要商务合作(定制程序)的欢迎私信!!

相关推荐
大橘3 天前
【qml-11】Quick3D实现机器人欧拉旋转、拖动视角
qt·3d·机器人·qml
大橘4 天前
【qml-12】Quick3D实现机器人鼠标拖拽转换视角(无限角度)与滚轮缩放
qt·3d·机器人·qml
钱彬 (Qian Bin)6 天前
企业级实战:构建基于Qt、C++与YOLOv8的模块化工业视觉检测系统(基于QML)
c++·qt·yolo·qml·工业质检·qt 5.15.2
大橘7 天前
【qml-10】Quick3D实现机器人渲染(mesh)记录
qt·机器人·qml
机器视觉知识推荐、就业指导8 天前
QML学习:1.快速了解QML
qt·学习·qml
DreamLife☼25 天前
Qt 中的 Q_OBJECT 宏详解 —— 从源码到底层机制的全面剖析
qt·信号·qml·q_object··rtti·运行时类型信息
大橘1 个月前
【qml-5】qml与c++交互(类型单例)
qt·qml
大橘1 个月前
【qml-4】qml与c++交互(类型多例)
qt·qml
钱彬 (Qian Bin)2 个月前
AI质检数据准备利器:基于Qt/QML 5.14的图像批量裁剪工具开发实战
qt·自定义·图像·qml·qt quick·裁剪工具
钱彬 (Qian Bin)2 个月前
《使用Qt Quick从零构建AI螺丝瑕疵检测系统》——8. AI赋能(下):在Qt中部署YOLOv8模型
人工智能·qt·yolo·qml·qt quick·工业质检·螺丝瑕疵检测