前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Qml读写文件_读写文件权限怎么开

Qml读写文件_读写文件权限怎么开

作者头像
全栈程序员站长
发布于 2022-11-17 05:42:56
发布于 2022-11-17 05:42:56
2.4K00
代码可运行
举报
运行总次数:0
代码可运行

大家好,又见面了,我是你们的朋友全栈君。

利用qmlRegisterType接口注册一个文件操作类到Qml中,这样Qml就可以实现读写文件。

1 FileObject.h

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#ifndef FILE_OBJECT_H
#define FILE_OBJECT_H
#include <QObject>
class FileObject : public QObject
{ 

Q_OBJECT
Q_PROPERTY(QString source READ source WRITE setSource NOTIFY sourceChanged)
public:
explicit FileObject(QObject *parent = 0);
Q_INVOKABLE QString read();
Q_INVOKABLE bool write(const QString& data);
void setSource(const QString& source) { 
 m_source = source; };
QString source() { 
 return m_source; }
signals:
void sourceChanged(const QString& source);
private:
QString m_source;
};
#endif // FILE_OBJECT_H

2 FileObject.cpp

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#include "FileObject.h"
#include <QFile>
#include <QTextStream>
FileObject::FileObject(QObject *parent) :
QObject(parent)
{ 

}
QString FileObject::read()
{ 

QString content;
QFile file(m_source);
if ( file.open(QIODevice::ReadOnly) ) { 

content = file.readAll();
file.close();
} 
return content;
}
bool FileObject::write(const QString& data)
{ 

QFile file(m_source);
if ( file.open(QFile::WriteOnly | QFile::Truncate) ) { 

QTextStream out(&file);
out<<data;
file.close();
return true;
}
else { 

return false;
}
}

3 注册FileObject到Qml中

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#include "FileObject.h"
Q_DECL_EXPORT int main(int argc, char *argv[])
{ 

...
qmlRegisterType<FileObject>("FileObject", 1, 0, "FileObject");
...
}

4 在Qml中使用FileObject实例

  • 读文件内容fileObject.read();
  • 写文件fileObject.write("Hello world!!!");
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import QtQuick 1.1
import FileObject 1.0
Rectangle { 

width: 640
height: 320
Text { 

id: myText
anchors.centerIn: parent
}
FileObject{ 

id: fileObject
source: "test.txt"
}
MouseArea { 

anchors.fill: parent
onClicked: { 

fileObject.write("Hello world!!!");
myText.text =  fileObject.read();
}
}
}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/234248.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年11月3日 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

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

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
好包不等待:用 pnpm 加速你的项目依赖
在前端开发的世界中,依赖管理是一项既重要又让人头疼的任务。传统的 npm 安装方式可能让你感到繁琐,而今天我们要介绍的 pnpm 就是为了解决这一问题而诞生的利器。让我们一起揭开 pnpm 的神秘面纱,看看它是如何为前端项目注入新的活力的。
一只牛博
2025/05/30
1490
好包不等待:用 pnpm 加速你的项目依赖
Crawlab 支持Nodejs脚本执行
在服务器上先按照docker,然后按照官方文档的指引,下载好docker-compose.yml, 然后执行docker-compose up -d,启动镜像,访问http://<your_ip>:8080
骑猪耍太极
2022/08/27
1K0
Crawlab 支持Nodejs脚本执行
你真的知道 NPM、Yarn 与 PNPM 这三个前端包管理器之间的区别吗?
在当代的Web开发过程中,JavaScript项目的构建离不开各种外部依赖,无论是实用的库、辅助工具还是其他类型的资源。这些依赖项的管理,已经成为了开发者日常不可或缺的一部分。NPM、Yarn和PNPM这三个包管理器,就像是开发者的得力助手,它们在项目开发中扮演着至关重要的角色。本文将带你一探究竟,了解这些工具的魅力所在,并帮助你选择适合自己项目的包管理器。
前端达人
2024/04/12
5K0
你真的知道 NPM、Yarn 与 PNPM 这三个前端包管理器之间的区别吗?
JavaScript 包管理器
npm、yarn、pnpm 都是现代化的 JavaScript 包管理器,它们的异同如下:
yiyun
2023/05/18
1.1K0
JavaScript 包管理器
cursor重构谷粒商城02——30分钟构建图书管理系统【cursor使用教程番外篇】
前言:这个系列将使用最前沿的cursor作为辅助编程工具,来快速开发一些基础的编程项目。目的是为了在真实项目中,帮助初级程序员快速进阶,以最快的速度,效率,快速进阶到中高阶程序员。
半旧518
2025/01/23
6940
cursor重构谷粒商城02——30分钟构建图书管理系统【cursor使用教程番外篇】
MCP的风,吹到了Yarn、NPM 和 Bun
先讲结论:Yarn、NPM 和 Bun 都是 JavaScript 生态系统中用于管理依赖和包的工具,是一个赛道的不同产品。
烟雨平生
2025/05/06
1350
MCP的风,吹到了Yarn、NPM 和 Bun
比 nvm 更好用的 node 版本管理工具
使用 Volta,您可以一次选择 Node 引擎,然后不再担心它。您可以在项目之间切换,而不必手动切换 nodejs 版本。你可以在工具链中安装 npm 二进制包,而不必定期重新安装它们,或者弄清楚它们停止工作的原因。
zz_jesse
2024/01/04
2.7K0
比 nvm 更好用的 node 版本管理工具
一文全面了解pnpm、yarn、cnpm、npx、npm的使用(强烈建议收藏)
NPM是随同NodeJS一起安装的包管理工具,能解决NodeJS代码部署上的很多问题,常见的使用场景有以下几种:
小码匠
2023/08/31
6.4K0
一文全面了解pnpm、yarn、cnpm、npx、npm的使用(强烈建议收藏)
如何设计完善的构建系统,为日常开发提速一倍
在搭建开发环境的构建系统时,我们关注二点: 提高效率,对于大部分事务的自动化,如自动编译代码、自动重启服务。 代码质量,编码完成时,我们则转而关注于代码的质量。 下面,让我们来详细了解下这两点的内容吧。 提高效率 依赖管理 我们在第一章 基础知识时提到了包管理的一些基础知识,对于一个成熟的编程语言来说,其也搭配有对应的包管理工具。只是在这里的,包管理工具不仅仅具有包管理的功能,它还会负责对包所依赖的子依赖进行管理。如我们在安装 Vim 软件的时候,会依赖于 vim-runtime,这里包管理工具所自
Phodal
2018/01/29
7940
NodeJS 入门了解
包含关系,NodeJS 中含有 npm,比如说你安装好 NodeJS,你打开 cmd 输入 npm -v 会发现出 npm 的版本号,说明 npm 已经安装好。
conanma
2022/01/04
5450
爬虫工程师也应该会的 NodeJS 知识(二)
而在 NodeJS 中为了方便开发人员发布、安装和管理包,,NodeJS 推出了一个包管理工具 NPM ( Node Package Manager )。
咸鱼学Python
2020/07/10
4950
使用pnpm极速进入monorepos模式
近来对tripdocs编辑器项目(已开源)进行重构,目标是使他能够按需加载指定的功能。因为要让插件能够分开加载,所以我需要把插件打包多个npm包。这时候,一个问题来了,多个git仓库还是一个git仓库。
爱吃大橘
2023/03/08
1.1K0
Crawlab 支持Nodejs爬虫插入数据
crawlab 官方文档的scrapy 爬虫爬取的结果可以在任务栏的数据那里看到,但是官方没有指引nodejs如何达到类似的成果。这对使用nodejs在crawlab上写爬虫的同学非常不友好。
骑猪耍太极
2022/08/27
1.2K0
Crawlab 支持Nodejs爬虫插入数据
前端包管理工具与配置项
任何一个项目的构建离不开工具和统一的管理标准,在项目开发和维护过程中,我们需要了解安装包的相应工具和配置文件,以此来有效的进行项目的迭代和版本的更新,为项目提供基本的运行环境。
程序员海军
2023/11/07
6220
49195,npm最后的疯狂?盘点10款最有前途JavaScript构建工具
这是在GitHub上拉取一个react 开发的开源项目,在本地 npm install 安装依赖库时,所面对的数字。
程序员小助手
2022/12/20
7050
49195,npm最后的疯狂?盘点10款最有前途JavaScript构建工具
谈后端人眼里的 nvm、yarn、pnpm……
虽然我是做后端的,但也时常关注前端,只是最近觉得前端的各种工具名称太眼花缭乱了,nvm、yarn、pnpm、taro……
北桥苏
2024/08/26
1680
谈后端人眼里的 nvm、yarn、pnpm……
【总结】1761- 了解并实践 Monorepo 和 pnpm
简单来说就是,将多个项目或包文件放到一个git仓库来管理。 目前比较广泛应用的是yarn+lerna的方式实现monorepo的管理。 一个简单的monorepo的目录结构类似这样:
pingan8787
2023/08/29
5730
【总结】1761- 了解并实践 Monorepo 和 pnpm
pnpm技术体系之:高性能包管理工具
pnpm 是 performant npm(高性能的 npm),它是一款快速的,节省磁盘空间的包管理工具,同时,它也较好地支持了 workspace 和 monorepos,简化开发者在多包组件开发下的复杂度和开发流程。
南山种子外卖跑手
2023/01/10
6690
pnpm技术体系之:高性能包管理工具
开发者必看:揭开 NPM 依赖管理的复杂面纱
今天聊一个很少被提及的话题 —— 「依赖管理」(Dependencies Management) 。
童欧巴
2024/04/17
1K0
开发者必看:揭开 NPM 依赖管理的复杂面纱
包管理工具
前端的包管理工具相信大家一定不会陌生,因为每天都需要跟他打交道,新项目或者刚拉下来的前端项目都需要去 install 依赖进行包的依赖安装,大家最熟悉的应该就是 npm 了,或者国内的 npm 镜像包 cnpm ,大家熟称为淘宝镜像
离殊
2022/04/01
2.9K0
包管理工具
相关推荐
好包不等待:用 pnpm 加速你的项目依赖
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验