原件:QFile file("/home/casper/QuickRecorder/about_content.txt");
(工作)
我试过了:
“about_content.txt”
"/about_content.txt"
“~/about_content.txt”
./about_content.txt"
“QuickRecorder/about_content.txt”
"/QuickRecorder/about_content.txt"
"~/QuickRecorder/about_content.txt"
"~/QuickRecorder/about_content.txt"
没有人工作。=[
我的问题
- 我可以使用什么路径?
- 如果我将文件“about_content.txt”注册到资源中,我如何将它读入文本浏览器?
完整代码如下:
About::About(QWidget *parent) :
QDialog(parent),
ui(new Ui::About)
{
ui->setupUi(this);
this->setFixedSize(this->width(),this->height());
QFile file("/home/casper/QuickRecorder/about_content.txt");
if ( !file.open(QIODevice::ReadOnly) )
QMessageBox::information(0, "Error", file.errorString());
QTextStream content(&file);
ui->aboutContentBrowser->setText(content.readAll());
}
引用:QT C++ GUI Tutorial 27- How to read text file and display file to a textbrowser or textEdit
感谢您的帮助。
最佳答案
如果您将文件 about_content.txt
放在构建目录中,您可以使用:
about_content.txt
./about_content.txt
如果您必须直接从此路径打开文件 /home/casper/QuickRecorder/about_content.txt
- 使用您在问题中所写的绝对路径。
如果你想使用相对路径
看看 relative path vs absolute path 的区别.因此,例如,如果您将文件放置到 /home/casper/QuickRecorder/about_content.txt
并且您确切地知道您的构建目录是 /home/casper/app-build
-- 你可以使用相对路径 ../QuickRecorder/about_content.txt
看看QDir
类(class)。它已经包含了许多有用的方法。
如果你想把你的文件放到资源中
这个过程非常简单。只需根据 The Qt Resource System 向您的项目添加资源并向您的资源添加文件.例如,您可以将文件 about_content.txt
添加到 .qrc
文件中,并以这种方式在您的程序中使用它:QFile file(":/about_content.txt ");
.
关于qt - 在 Linux Qt 上使用相对路径读取文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25104923/