Local files

本地文件

Is it also possible to load local (XML/JSON) files using the XMLHttpRequest. For example a local file named “colors.json” can be loaded using:

也可以使用XMLHttpRequest加载本地(XML/JSON)文件。例如,可以使用以下方法加载名为“colors.json”的本地文件:

xhr.open("GET", "colors.json")

We use this to read a color table and display it as a grid. It is not possible to modify the file from the Qt Quick side. To store data back to the source we would need a small REST based HTTP server or a native Qt Quick extension for file access.

我们使用它来读取颜色表并将其显示为网格。无法从Qt Quick端修改文件。为了将数据存储回源,我们需要一个小型的基于REST的HTTP服务器或用于文件访问的本地Qt Quick扩展。

import QtQuickRectangle {width: 360height: 360color: '#000'GridView {id: viewanchors.fill: parentcellWidth: width / 4cellHeight: cellWidthdelegate: Rectangle {required property var modelDatawidth: view.cellWidthheight: view.cellHeightcolor: modelData.value}}function request() {const xhr = new XMLHttpRequest()xhr.onreadystatechange = function() {if (xhr.readyState === XMLHttpRequest.HEADERS_RECEIVED) {print('HEADERS_RECEIVED')} else if(xhr.readyState === XMLHttpRequest.DONE) {print('DONE')const response = JSON.parse(xhr.responseText.toString())view.model = response.colors}}xhr.open("GET", "colors.json")xhr.send()}Component.onCompleted: {request()}
}

TIP

By default, using GET on a local file is disabled by the QML engine. To overcome this limitation, you can set the QML_XHR_ALLOW_FILE_READ environment variable to 1:

默认情况下,QML引擎禁用对本地文件使用GET。要克服此限制,可以将QML_XHR_ALLOW_FILE_READ环境变量设置为1:

QML_XHR_ALLOW_FILE_READ=1 qml localfiles.qml

The issue is when allowing a QML application to read local files through an XMLHttpRequest, hence XHR, this opens up the entire file system for reading, which is a potential security issue. Qt will allow you to read local files only if the environment variable is set, so that this is a concious decision.

问题是,当允许QML应用程序通过XMLHttpRequest读取本地文件时,这会打开整个文件系统进行读取,这是一个潜在的安全问题。Qt将允许您仅在设置了环境变量的情况下读取本地文件,因此这是一个简洁的决定。

Instead of using the XMLHttpRequest it is also possible to use the XmlListModel to access local files.

除了使用XMLHttpRequest,还可以使用XmlListModel访问本地文件。

import QtQuick
import QtQml.XmlListModelRectangle {width: 360height: 360color: '#000'GridView {id: viewanchors.fill: parentcellWidth: width / 4cellHeight: cellWidthmodel: xmlModeldelegate: Rectangle {id: delegaterequired property var modelwidth: view.cellWidthheight: view.cellHeightcolor: model.valueText { anchors.centerIn: parenttext: delegate.model.name}}}XmlListModel {id: xmlModelsource: "colors.xml"query: "/colors/color"XmlListModelRole { name: 'name'; elementName: 'name' }XmlListModelRole { name: 'value'; elementName: 'value' }}
}

With the XmlListModel it is only possible to read XML files and not JSON files.

使用XmlListModel,只能读取XML文件,而不能读取JSON文件。

示例源码下载

Qt6 QML Book/网络设置/本地文件相关推荐

  1. Android Studio上手,基于VideoView的本地文件及流媒体播放器

    既然是第一个Android程序,少不了要Hello World. 1. 新建安卓工程 2. 输入工程名称 3. 选择平台版本 4. 选择一个空的Activity 5. 定制自己的Activity 点击 ...

  2. 用命令备份与还原网络设置

    将当前的网络设置备份下来 netsh -c interface dump > c:/location1.txt 将网络设置从文件中还原出来 netsh -f c:/location1.txt

  3. 渗透测试专题二之msf(kali)的攻击教程将DOS操作系统中的本地文件接口“中断13”改造为网络文件系统...

    主要功能: msf   console的使用及其配置 msf的主要作用及其实例 主要功能介绍详情 msf   console的使用及其配置 启动服务:service postgresql  start ...

  4. win7下批处理bat文件:切换网络设置

    自己用 @echo off title –网络自动设置 – @MODE con: COLS=80 lines=30 color 0A :main cls echo 按提示操作 echo: echo 1 ...

  5. Android音视频学习系列(七) — 从0~1开发一款Android端播放器(支持多协议网络拉流本地文件)

    系列文章 Android音视频学习系列(一) - JNI从入门到精通 Android音视频学习系列(二) - 交叉编译动态库.静态库的入门 Android音视频学习系列(三) - Shell脚本入门 ...

  6. igs无法分配驱动器映射表_如何同步本地文件到网络驱动器/NAS?

    ​在我们的生活中,有多种原因促使我们需要将文件夹同步到(网络驱动器)共享文件夹或NAS.例如,想要脱机查看先前可用的文件夹.同步文件夹的作用:自动保存两个或多个相同的文件夹,并将所有更改的文件夹从源目 ...

  7. dw本地服务器文件夹,dw设置本地服务器

    dw设置本地服务器 内容精选 换一换 有,该NTP服务器仅限于在华为云控制台上购买的弹性云服务器安装使用.如需在购买的弹性云服务器上安装NTP服务器,您可以选择使用华为云控制台自己提供的NTP服务器, ...

  8. 技术小白的第一篇博客 --- 虚拟机访问本地文件设置

    虚拟机访问本地文件夹 最近工作中需要使用到虚拟机在不同操作系统上测试软件,总是从服务器拷贝文件太麻烦,就找了一下虚拟机可以直接访问本地文件夹的设置方法,这里就是简单记录一下. 1.在虚拟机的设置页面中 ...

  9. 网络访问:本地账号的共享和安全模式设置身份验证后自动更改其他验证的处理方法 ...

    网络访问:本地账号的共享和安全模式 设置成为"仅来宾-本地用户以来宾身份验证"后自动更改成"经典:本地用户以自己的身份验证"的处理方法 我们为何要修改网络访问: ...

  10. maven 部署nexus_设置本地Nexus存储库并从Maven部署WAR文件

    maven 部署nexus Maven Central充当中央存储库管理器,二进制文件由不同的团队/公司/个人上载并与世界其他地方共享. 就像github和其他对源代码控制非常有效的源代码存储库一样, ...

最新文章

  1. 第十五章 深入分析iBatis框架之系统架构与映射原理(待续)
  2. c++ string 头文件_“延期不延学” 第25期 | C++篇 | C/C++常用函数
  3. JAVA_NIO ,走进JavaNIO的世界
  4. vivado点击xsetup.exe没有反应 最终版
  5. 游戏打包过程枯燥且繁琐,如何提升打包效率?
  6. 答网友提问:使用 SAP Fiori Tools 创建的 Fiori Elements 应用,如何进行二次开发?
  7. C#发布程序添加其他程序文件
  8. appsan可以扫描linux吗,[经验]使用appscan实现多站扫描简单自动化
  9. 浅说深度学习(4):增强学习
  10. iOS8中添加的extensions总结(一)——今日扩展
  11. 左连接与右连接的区别
  12. 用python完成《商务与经济统计(第13版)》课后练习——第7章和第8章
  13. Detectron 创建blob的过程
  14. 《斩魔问道》突破传统玩法,实时强战PK,爆裂高清画质的仙侠手游巨作
  15. Ae 效果快速参考:Keylight(1.2)
  16. 对抛物线准线与焦点弦的思考与总结
  17. PS设计网页下载使用960栅格系统设计简洁网页
  18. 荣耀机试题 2021.04 ~05
  19. 苹果 iPhone 14 Pro/Max 手机最新细节曝光,终于盼来 USB-C 接口
  20. 参考文献中各字母的含义

热门文章

  1. RF手机天线仿真介绍(二):孔径调谐和阻抗调谐
  2. 2.7 新奇点和离群点检测
  3. 一文带你入门虚拟遗憾最小化CFR算法
  4. 独家 | 百度副总裁“李叫兽”将离职
  5. Communications link failure 一个困扰了我三天的问题已解决
  6. 安卓小人html制作,安卓小人.html
  7. winscp连接被拒绝的解决方法
  8. 院庆 |於昊、刘超平、杨明:南京市老城区老旧小区停车发展政策与策略
  9. Docker 大势已去,Podman 即将崛起(荣耀典藏版)
  10. 【搜索】训练题C - Computer Game