Qt cmake add_subdirectory 后无法使用子模块的资源(如图片、翻译文件)的解决方案

在 CMakeLists.txt 中 add_subdirectory 导入自模块后,无法访问子模块里的资源。

尝试配置 CMAKE_AUTORCC 无效:

cmake 复制代码
set(CMAKE_AUTOUIC ON)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)

使用 qt5_add_resources 导入资源无效:

cmake 复制代码
qt5_add_resources(QRC_FILES "Res/MyRes.qrc") 

将资源文件配置为公共无效:

cmake 复制代码
set_source_files_properties(${QRC_FILES} PROPERTIES PUBLIC TRUE)

清理构建目录重新构建也无效。

此时有点抓狂了吧,别急,往下看一招解决:


原因:静态的资源需要初始化才能使用。假设你的资源文件名是 MyRes.qrc,那么在使用它前需要加一行 Q_INIT_RESOURCE(MyRes); 才能使用。

一般直接加在 main 函数开始的地方:

cpp 复制代码
int main(int argc, char *argv[])
{
    QApplication app(argc, argv);
    
    // 初始化资源
    Q_INIT_RESOURCE(MyRes);
    
    // 现在可以正常使用资源了
    
    return app.exec();
}
相关推荐
CHANG_THE_WORLD3 分钟前
<Fluent Python > Unicode 文本与字节
开发语言·python
AI人工智能+电脑小能手8 分钟前
【大白话说Java面试题】【Java基础篇】第20题:HashMap在计算index的时候,为什么要对数组长度做减1操作
java·开发语言·数据结构·后端·面试·哈希算法·hash-index
凯瑟琳.奥古斯特9 分钟前
Bootstrap快速上手指南
开发语言·前端·css·bootstrap·html
我就是妖怪21 分钟前
Kimi K2.6 智能效果实测与能力全景展示
开发语言
中二痞24 分钟前
下载Python 版本,环境变量变更以及PyCharm更换python版本
开发语言·python·pycharm
故事和你9127 分钟前
洛谷-算法2-3-分治与倍增5
开发语言·数据结构·c++·算法·动态规划·图论
SilentSamsara27 分钟前
标准库精讲:collections/itertools/functools/pathlib 实战
开发语言·vscode·python·青少年编程·pycharm
逻辑驱动的ken32 分钟前
Java高频面试考点场景题17
开发语言·jvm·面试·求职招聘·春招
charlie11451419133 分钟前
通用GUI编程技术——图形渲染实战(三十九)——纹理与采样器:从WIC加载到GPU渲染
开发语言·c++·图形渲染·win32
love530love38 分钟前
Python 3.12 解决 MediaPipe “no attribute ‘solutions‘” 终极方案:基于全版本硬核实测的避坑指南
开发语言·人工智能·windows·python·comfyui·mediapipe·solutions