在我正在开发的应用程序中(使用 C++ 和 Qt),我使用QApplication::applicationDirPath()来访问一些资源,关于应用程序的路径。
例如,由于我想从应用程序中打开 HTML 手册,所以我这样做:
void MainWindow::on_actionHelp_triggered()
{
QString link = QApplication::applicationDirPath() + "/Guide/guide.html";
bool r = QDesktopServices::openUrl(QUrl::fromLocalFile(link));
}
如果项目结构呈现路径“ProjectName/bin/Release/Guide/guide.html”(因为 .exe 文件位于“ProjectName/bin/Release/AppName.exe”中),则此代码段有效。
但是我能做些什么来引用更高目录级别的资源呢?例如,我希望我的 HTML 文件位于“ProjectName/data/Guide/guide.html”中。但这样一来,似乎不可能以我的行为方式来构成路径。
编辑:@olive 发表评论后,我想澄清一件事:“为什么我不使用'../'? ”因为它在 Visual Studio 中不起作用,我在其中大规模启动应用程序来测试它。实际上,在VS中,我将使用“../data/Guide/guide.html”,当“从外部”时,我必须使用“../../data/Guide/guide.html” .
这就是(我认为) QApplication::applicationDirPath() 存在的原因。但是,我不是专家,所以请不要责怪我并纠正我的任何最终错误,拜托!