【发布时间】:2020-04-17 10:24:45
【问题描述】:
很奇怪,我通过Add Existing Files...将想要的文件添加到资源中,文件就在那里。我运行 qmake ("Build->Run qmake") 使文件可用。 第一个问题:我无法从输出终端向文件中写入任何内容!但是当我手动写入文件时,每次运行时输出终端都会显示更改它。第二个问题:它仍然显示 QIODevice::read: device not open ! 这是我的代码:
#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();
}
【问题讨论】:
-
qresource 中保存的项目是只读的。
-
@eyllanesc:即使很短,这条评论也应该是一个答案。因为,正如您所说,无法写入资源文件(因为它们被编译成可执行文件)。
标签: c++ qt qt5 qfile qresource