所以我试图通过执行以下操作将QFile转换为QString:
void MainWindow::openTemplateFile(QString location)
{
if (location.isEmpty())
return;
else
{
QString variable;
templateFile.setFileName(location);
if (!templateFile.open(QFile::ReadOnly | QFile::Text))
{
QMessageBox::information(this, "Unable to open template",
templateFile.errorString());
return;
}
else // file opened and ready to read from
{
QTextStream in(&templateFile);
QString fileText = in.readAll();
qDebug() << templateFile.size() << in.readAll();
}
}
}
但是,在调试控制台中得到以下结果:
48 ""
templateFile确实存在,并且是MainWindow类的一部分。这也是简化的代码-在实际程序中,我从文件读取了字符,它可以正常工作。位置字符串是QFileDialog::getOpenFileName函数的结果,我使用该函数打开了txt文件。
最佳答案
您两次调用readAll()
。第二次,该流位于文件末尾,因此readAll()
没有任何内容可读取,并且返回空字符串。在您的调试输出中打印fileText
。