QT:无法使用相对路径查找文件

时间:2014-12-31 17:22:28

标签: qt filepath

(1) 说我有一个文件 callingfile.cpp

它需要在其子目录" shaders"中读取另一个文件newyearfile.frag。

这意味着它就像:

project:
  /prog1
  /prog1/callingfile.cpp
  /prog1/shaders/newyearfile.frag    (this file is added in Project.qrc)

现在在callingfile.cpp中,我想访问newyearfile.frag

我试过了:

shaders/newyearfile.frag

它没有用。

然后我尝试了:

./shaders/newyearfile.frag

它不起作用

如果我使用

:/prog1/shaders/newyearfile.frag

然后它有效。

但是相对路径怎么会起作用?

(2) 但是在项目文件中还有另一种情况,它可以使用较高级别的相对路径。

project:
  /prog2
  /prog2/callme.h   (this file is in the Project.pro)
  /prog2/source/iwillcall.cpp

在iwillcall.cpp中 它使用:

../callme.h

它有效。

(3)我的猜测: 你认为案例(1),.qrc中的文件是否覆盖相对路径?

1 个答案:

答案 0 :(得分:2)

相对路径相对于working directory(不一定是可执行文件的目录)。如果您愿意,也可以从Qt resources加载它,但我看到您可能已经这样做了。

使用QDir::currentPath,您可以获得工作目录的路径。