我正在尝试使用菜单栏打开文件(硬编码(时,单击'文件| open'。该文件应附加到并显示每行。我的功能找不到文件。因此,单击"打开"后,我会返回" Trace.txt"。我将文件保存在与其他项目文件的目录中相同的目录中。我想知道我是否尚未正确打开文件?谁能查看我的代码,看看您是否遇到了我没有的错误?
void MainWindow::readFile(){
infoLabel->setText(tr("Invoked <b>File|Open</b>"));
QString filename="trace.txt";
QFile file(filename);
if(!file.exists()){
qDebug() << "File <i>cannot</i> be found "<<filename;
}else{
qDebug() << filename<<" Opening...";
}
QString line;
textEdit->clear();
if (file.open(QIODevice::ReadOnly | QIODevice::Text)){
QTextStream stream(&file);
while (!stream.atEnd()){
line = stream.readLine();
textEdit->setText(textEdit->toPlainText()+"0x"+line+"n");
qDebug() << "line: "<<line;
}
}
file.close();
}
更新:我将Qfile对象更改为直接路径,并找到了文件。另一方面,我正在以无限的循环阅读它,该循环从未到达文本编辑,并不断输出调试器。有什么想法吗?
使用Current或CurrentPath((查看您正在使用的目录。请参阅此示例以了解当前目录:
QFile file;
QDir::setCurrent("/tmp");
file.setFileName("readme.txt");
QDir::setCurrent("/home");
file.open(QIODevice::ReadOnly); // opens "/home/readme.txt" under Unix
来自http://doc.qt.io/qt-5/qfile.html#qfile