【问题标题】:How to get the current Path on Qt如何在 Qt 上获取当前路径
【发布时间】:2017-02-20 05:04:55
【问题描述】:

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

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

QCoreApplication::applicationDirPath()

它给了我:

“C:/Users/USER_NAME/Desktop/PROJECT_NAME/build-PROJECT_NAME-Desktop_Qt_5_7_0_MinGW_32bit-调试/调试”

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

“C:/Users/USER_NAME/Desktop/PROJECT_NAME/PROJECT_NAME/shaders”

我怎样才能得到正确的路径?

【问题讨论】:

  • 我不知道“带有着色器的文件”是什么,但闻起来像是使用 resource system 的好人选。

标签: c++ qt path


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 2020-11-21
      • 2016-06-04
      • 2018-03-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-18
      • 1970-01-01
      • 2013-03-10
      相关资源
      最近更新 更多