是否可以在Qt资源文件中使用系统环境变量?



我想从另一个项目导入一些资源而不复制到我的项目目录中。环境变量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条件(。

最新更新