Qt-QML-C++交互实现文件IO系统-后继-具体文件IO的实现

举报
DreamLife 发表于 2022/04/15 23:51:12 2022/04/15
【摘要】 在上一篇文章中,我大致将这个QML中的文件IO类搭出了大致的框架,那么,今天抽时间写了一点文件的读写,这里我使用的文件流来读写文件。   文件结构如图   在QML中调用这个类了,就见简单的读取了一个JSON数据的一个属性值。     重点看下我的文件IO Cpp文件 &nbs...

在上一篇文章中,我大致将这个QML中的文件IO类搭出了大致的框架,那么,今天抽时间写了一点文件的读写,这里我使用的文件流来读写文件。

 

文件结构如图

 

在QML中调用这个类了,就见简单的读取了一个JSON数据的一个属性值。

 

 

重点看下我的文件IO Cpp文件

 

 

 

QJsonObject DLFileIOSystem::DLReadFile()
{
    //这里将实现文件的打开并从文件中读取内容


    QFile file("./config.ini");

    if(!file.open(QIODevice::ReadWrite | QIODevice::Text))
    {
        QMessageBox::warning(NULL,"警告","打开文件失败");
    }
    else
    {
        QTextStream filestream(&file);

        QString line;

        while (filestream.readLineInto(&line))
        {

            qDebug()<<line;

        }
    }
    file.close();

    QJsonObject date;
    return fileDate;
}

bool DLFileIOSystem::DLWriteFile()
{
    //这里将实现文件的写入和关闭文件




    QFile file("./config.ini");

    if(!file.open(QIODevice::ReadWrite | QIODevice::Text))
    {
        QMessageBox::warning(NULL,"警A告","打开文件失败");
    }
    else
    {
        QTextStream filestream(&file);

        QStringList keylist = fileDate.keys();

        for (int i = 0; i<keylist.count(); i++)
        {

            filestream << keylist.value(i) + " : " + fileDate.value(keylist.value(i)).toString() + "\r\n";
//            filestream << keylist.value(i) << " : " << fileDate.value(keylist.value(i)) << "\r\n";
        }
    QMessageBox::warning(NULL,"提示","文件写入完成");
    }
    file.close();

    return true;

}


两个文件,一个读文件,一个写文件。

 

 

都是采用文件流的来读写,这里在读文件数据的方面,目前只是一行一行的从文件中将数据读取出来,还没有写将数据封装成JSON数据包发送给QML

 

看下运行截图

 

这是当我点击打开文件时,显示的程序运行截图

下面是当我点击关闭文件是,显示的运行截图

 

剩下的还在完善中,后期可能会加入对XML文档的支持

 

 

 

 

 

 

 

文章来源: dreamlife.blog.csdn.net,作者:DreamLife.,版权归原作者所有,如需转载,请联系作者。

原文链接:dreamlife.blog.csdn.net/article/details/71598414

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。