(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中的文件是否覆盖相对路径?
答案 0 :(得分:2)
相对路径相对于working directory(不一定是可执行文件的目录)。如果您愿意,也可以从Qt resources加载它,但我看到您可能已经这样做了。
使用QDir::currentPath,您可以获得工作目录的路径。