c-如何在Qt 5中读写QResource文件?

奇怪,我通过“添加现有文件…”将所需文件添加到资源中,文件在那里.我运行qmake(“ Build-> Run qmake”)以使文件可用.
第一个问题:我无法从输出终端将任何内容写入文件!但是当我手动写入文件时,输出终端会在每次运行它时显示更改.第二个问题:它仍然显示QIODevice :: read:设备未打开!
这是我的代码:

#include <QCoreApplication>
#include <QDebug>
#include <QFile>
#include <QString>
#include <QTextStream>
#include <iostream>

void wFile(QString Filename)
{ 
  QFile  nFile(Filename);
  QTextStream str(&nFile);
  qDebug() << "what do you want to write in the desired file: ";
  str.readLine();
  if (!nFile.open(QFile::WriteOnly  | QFile::Text))
  {
    qDebug() << "could not open the file";
    return;
  }
  nFile.flush(); 
  nFile.close();
 }

void read (QString Filename){
  QFile nFile(Filename);

  if(!nFile.open(QFile::ReadOnly | QFile::Text))
  {
    qDebug() << "could not open file for reading";
    return;
  }
  QTextStream in(&nFile);
  QString nText = in.readAll();

  qDebug() << nText;
  nFile.close();
 }


int main(int argc, char *argv[])
{
 QCoreApplication a(argc, argv);
 QString nFilename =":/MyFiles/DocumentArminV.txt";

 wFile(nFilename);
 read(nFilename);

 return a.exec();
}

这是代码的输出终端:
c-如何在Qt 5中读写QResource文件?

解决方法:

qresource中保存的文件是只读文件,因为它们是可执行文件的一部分,因此您无法编写或修改它们.

docs:

c-如何在Qt 5中读写QResource文件?

目前,Qt始终将数据直接直接存储在可执行文件中,即使在Windows,macOS和iOS上,操作系统也提供对资源的本机支持. …

上一篇:linux-尝试运行Qt应用时LD_LIBRARY_PATH失败


下一篇:Qt – 单击QML按钮时如何运行C函数?使用QQmlApplicationEngine