单击“文件|打开”时,我尝试使用菜单栏打开文件(硬编码)。该文件应附加并显示每一行。我的功能是找不到文件。所以在我点击打开之后我回来了'无法找到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对象更改为直接路径并找到了该文件。另一方面,我在无限循环中读取它,它永远不会进入textEdit并不断输出到调试器。有什么想法吗?
答案 0 :(得分:2)
使用current或currentPath()查看您正在使用的目录。 请参阅此示例以了解当前目录:
QFile file;
QDir::setCurrent("/tmp");
file.setFileName("readme.txt");
QDir::setCurrent("/home");
file.open(QIODevice::ReadOnly); // opens "/home/readme.txt" under Unix