我几天前开始使用Qt。但是,当我想读取文件时,虽然文件是打开的,但我无法从中获取单行。 qDebug的输出是"文件打开"但是while没有做任何事情(我没有得到"它是否有效?"文本在我的TextArea(textEdit))。 我错过了什么?该文件肯定存在,可以打开并有2行。
QFile file("savefile.txt");
if (!file.open(QIODevice::ReadOnly))
{
qDebug()<<"The file is not open.";
return;
}
else
{
qDebug()<<"The file is open.";
QString line;
QTextStream in(&file);
while(!in.atEnd())
{
line = in.readLine();
qDebug()<<"Line: "<<line.toLatin1();
ui->TextArea->setText("Does it work?");
}
file.close();
}
那么,我错过了什么呢? 我尝试相应地执行Qt入门教程,但没有创建对话框(Link to the page,向下滚动到&#34;打开文件&#34;)。 感谢您提前提供任何帮助!
编辑1:由于文件有2行(确切地说是&#34; Asd。&#34;和&#34; asd。&#34;),我已被替换与for(int i = 0; i<2; i++)
同时进行。 QDebug现在告诉我两次:
Line: ""
Line: ""
我认为while(!in.atEnd())
有一些东西。
EDIT2:替换了周期,将in.readLine()
替换为ui->TextArea->setText(in.readAll().toLatin1());
。结果仍然相同(如果我使用ui->TextArea->setText("Hey!");
,它就可以了。
答案 0 :(得分:1)
问题已通过以下方式解决:
<强> 1。重新安装Qt。
我使用Qt维护工具从我的电脑中删除软件,然后再次下载。也许有些文件丢失了。
<强> 2。文件无法打开的可能原因:文件夹错误
由于我已经命名了我的项目RPG(项目文件是RPG.pro),我将文件放入RPG文件夹中,而不是放在同一目录build_RPG_desktop [...]中的另一个文件夹中,包含ui_mainwindow头文件(我没有从主窗口更改默认名称)。一个文件&#34; Data.txt&#34;使用以下代码重新安装Qt后,可以在build_RPG [...]文件夹中成功读取:
QString fileName = "Data.txt";
if (!fileName.isEmpty())
{
QFile file(fileName);
if (!file.open(QIODevice::ReadOnly))
{
qDebug()<<"Error. File not found";
return;
}
QTextStream in(&file);
ui->TextArea->setText(in.readAll());
file.close();
}
注意:我修改了TextEdit字段并将其名称设置为TextArea。 ui->TextArea->setText()
设置textEdit字段的内容。