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)


相关推荐

  • 怎样使用cookie登录自己的账号

    在这之前,不管是做测试还是挖漏洞总会遇到这种问题做测试的时候测试项里面有一个会话标识未更新,这种漏洞说白了就是在退出个人账户的时候没有及时的清除cookie,从而让别人利用你的cookie再次登录你的账户,然后测试的时候客户就让测试如何使用cookie登录在挖漏洞的时候一般xss都需要打cookie然后伪造别人的身份登录,其实也是使用打到的cookie登录在这之前我没深入的理解这块,现…

  • 在Android Studio中新建android gradle project的时候connect refused

    在Android Studio中新建android gradle project的时候connect refused

  • EasyMock日记1[通俗易懂]

    privatePayControllerpayController;privateHttpServletRequestrequest;privateUseruser;privateHttpSessionsession;@Beforepublicvoidbefore(){payController=newPayController();user=ne

  • 所有jar包的下载地址

    所有jar包的下载地址作为初学者很多jar包不知道去哪里下载,给大家分享一个地址:这个网址是maven仓库的国内镜像地址:http://mvnrepository.com步骤图解:1.2.3.

  • 订单支付功能对接支付宝支付接口「建议收藏」

    订单支付功能对接支付宝支付接口「建议收藏」求助:这张GIF的效果动图整了一个多小时,没找到好的编辑软件,都太难用了。如果恰巧看到这篇文章有好的GIF编辑或者录制软件,请推荐一个!万谢订单支付功能是购物的最后一个环节,本文将通过对接支付宝的接口,实现支付宝付款功能。蚂蚁金服开放平台专门为开发者的网站,包含了支付宝中涉及的很多功能接口,本文的功能实现是在沙箱环境中进行,蚂蚁沙箱环境(Beta)是协助开发者进行接口功能开发及主要功能联

  • 双系统ubuntu20.04安装教程_ubuntu20.04网络配置

    双系统ubuntu20.04安装教程_ubuntu20.04网络配置文章目录1.激活VMware1.2下载ubuntu20.04镜像2.安装虚拟机3.安装ubuntu20.043.1开启此虚拟机3.2安装ubuntu我的网站:https://pythoneers.cn1.激活VMware下载链接:https://www.vmware.com/cn/products/workstation-pro/workstation-pro-evaluation.html安装完成后,选择【帮助】,输入许可证密钥。1.2下载ubuntu20.04镜像htt.

发表回复

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

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