我想从另一个项目导入一些资源而不复制到我的项目目录中。环境变量ANOTHER_PROJECT_DIR
存储另一个项目的路径。
我尝试做这样的事情:
<file>%ANOTHER_PROJECT_DIR%/file</file>
或者这个:
<file>$$(ANOTHER_PROJECT_DIR)/file</file>
在我的 qrc 文件中。
那么是否可以在Qt资源文件中使用系统环境变量,我该怎么做?
找到跨平台解决方案会很棒
qrc资源文件是一个静态二进制资源链接。您无法动态执行此操作。但是,您可以从代码中执行类似操作
#include <QProcessEnvironment>
...
somefunc(){
QString env = qgetenv("SOME_VAR");
QString filepath = env + "/path/to/file";
...
}
Rcc 不支持此类功能。您可以使用qmake的"替代品"(仍然没有记录?(功能。
test.pro
myqrc.input = myqrc.in
myqrc.output = myqrc.qrc
QMAKE_SUBSTITUTES += myqrc
myqrc.in
<file>$$(ANOTHER_PROJECT_DIR)/file</file>
基本上,">替代品"是一个内置的预处理器,能够评估/扩展"qmake"表达式(加上!!IF
/!!ELSE
/!!ENDIF
条件(。