前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Qml使用js读写文件

Qml使用js读写文件

作者头像
Qt君
发布2023-03-17 13:55:56
2.8K0
发布2023-03-17 13:55:56
举报
文章被收录于专栏:跟Qt君学编程跟Qt君学编程

❝Qml不用依赖C++的实现,使用js的XMLHttpRequest对象实现读写文件的功能。❞

先看下面的实现例子(读取Qt资源文件main.qml文件并显示到Text控件中):

代码语言:javascript
复制
// main.qml
import QtQuick 2.0
import "qrc:/file.js" as File

Rectangle {
    id: root
    width: 480
    height: 320

    Text {
        anchors.fill: parent
        Component.onCompleted: {
            /* 读取Qt资源文件中的main.qml文件内容到Text控件 */
            text = File.read("qrc:/main.qml")

            /* 如需要读取某个路径文件则可以这样写:file:///C:/Users/My/Demo.qml */

            /* 写内容到example.txt中 */
            File.write("example.txt", "Hello qthub.com")
        }
    }
}

file.js文件内容:

代码语言:javascript
复制
// file.js
function read(file) {
    var request = new XMLHttpRequest();
    request.open("GET", file, false); // false为同步操作设置
    request.send(null);
    return request.responseText;
}

function write(file, text) {
    var request = new XMLHttpRequest();
    request.open("PUT", file, false); // false为同步操作设置
    request.send(text);
    return request.status;
}

 从file.js文件中看到读写函数的实现,关键的地方在于XMLHttpRequest对象。

  XMLHttpRequest请求特定的url,可以用于获取任何类型的数据,而不仅仅是XML。它甚至支持HTTP以外的协议,比如file://FTP。另外,在浏览器中使用可能出于安全等原因的功能会受到限制。

  既然XMLHttpRequest支持file://协议(本地文件传输协议)那么就可以用它来读写文件了。

关于更多

  • 2019-12-20期公众号推文《QML文件读写控件(预览版)》
  • XMLHttpRequest说明文档:
代码语言:javascript
复制
https://developer.mozilla.org/zh-CN/docs/Web/API/XMLHttpRequest
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-09-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Qt君 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 关于更多
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档