如何在Qt上获取当前路径

时间:2016-10-11 15:24:56

标签: c++ qt path

我的Qt项目文件中有一个带着色器的文件。

当我试图获取应用程序的路径时

QCoreApplication::applicationDirPath()

它给了我:

  

“C:/用户/ USER_NAME /桌面/ PROJECT_NAME /集结PROJECT_NAME-Desktop_Qt_5_7_0_MinGW_32bit-调试/调试”

但实际上,着色器文件位于:

  

“C:/用户/ USER_NAME /桌面/ PROJECT_NAME / PROJECT_NAME /着色器”

我如何获得正确的路径?

2 个答案:

答案 0 :(得分:3)

您获得了正确的结果。默认情况下,大多数IDE(包括Qt Creator)将项目编译到与源存储在不同的目录中,并从那里或从另一个位置运行它。

假设您正在使用Qt Creator,您可以在项目设置窗格中更改可执行文件的工作目录:

screenshot

答案 1 :(得分:1)

根据QCoreApplication::applicationDirPath()返回包含应用程序可执行文件的目录。您获得的输出基于您从Qt IDE运行应用程序的时间。并且,它希望着色器文件与可执行文件位于同一位置。因此,您可以使用公共位置(例如。%appdata%)或使用着色器文件所在的硬编码路径。另一种解决方案可能是在您的情况下将着色器文件复制到可执行文件的位置:

C:/Users/USER_NAME/Desktop/PROJECT_NAME/build-PROJECT_NAME-Desktop_Qt_5_7_0_MinGW_32bit-Debug/debug