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

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

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

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

1 FileObject.h

#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

Jetbrains全家桶1年46,售后保障稳定

2 FileObject.cpp

#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中

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • java mencoder_mencoder java linux[通俗易懂]

    java mencoder_mencoder java linux[通俗易懂]在执行转化的时候只能转化1分钟的影片超过1分钟影片的都不能转化。可是直接输入命令行又能全部转化。高分求解try{Runtimert=Runtime.getRuntime();Processproc=rt.exec(“mencoder”+ol…在执行转化的时候只能转化1分钟的影片超过1分钟影片的都不能转化。可是直接输入命令行又能全部转化。高分求解try{Runtimert=Runtime….

  • 用py2exe打包成一个exe文件「建议收藏」

    用py2exe打包成一个exe文件「建议收藏」一、简介py2exe是一个将python脚本转换成windows上的可独立执行的可执行程序(*.exe)的工具,这样,你就可以不用装python而在windows系统上运行这个可执行程序。py2exe已经被用于创建wxPython,Tkinter,Pmw,PyGTK,pygame,win32comclient和server,和其它的独立程序。py2exe是发布在开源许可证下的。二、安

  • Animator_制作动画的软件

    Animator_制作动画的软件1、ApplyRootMotionAnimatorMoveScript.cs:voidOnAnimatorMove(){//在脚本中使用此函数,并把它添加到相应对象上//这个方法就会覆盖Ap

  • 测试用例八大要素

    测试用例八大要素测试用例八大要素1.测试用例编号由字母、字符、数字组合而成的字符串,有唯一性,易识别性。eg:1)系统测试:产品编号-ST-系统测试项名-系统测试子项名-编号2)集成测试:产品编号-IT-集成测试项名-集成测试子项名-编号3)单元测试:产品编号-UT-单元测试项名-单元测试子项名-编号这样看到编号就可以知道是做的什么测试,测试的对象是什么,也方便维护。…

  • DVWA file inclusion 出错 allow_url_fopen=0

    DVWA file inclusion 出错 allow_url_fopen=0在DVWA平台中测试文件包含是出现错误信息include():http://wrapperisdisabledintheserverconfigurationbyallow_url_fopen=0,原因是设置allow_url_open与allow_url_include位置不对,在C:\xampp\htdocs\DVWA\php.ini文件中都设置为on并不会起作用,需要…

  • spring boot框架介绍_Spring框架是什么

    spring boot框架介绍_Spring框架是什么前面的铺垫文章已经连着写了六篇了,主要是介绍了Spring和SpringMVC框架,小伙伴们在学习的过程中大概也发现了这两个框架需要我们手动配置的地方非常多,不过做JavaEE开发的小伙伴们肯定也听说过“约定大于配置”这样一句话,就是说系统,类库,框架应该假定合理的默认值,而非要求提供不必要的配置,可是使用Spring或者SpringMVC的话依然有许多这样的东西需要我们进行配置,这样不仅徒增工作量

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号