一.可视化文件
1. .ui文件
(1)概念.ui = Qt 可视化界面设计文件,会自动转成 C++ 界面类给你调用
.ui文件是可视化界面,转化成可编译文件
UI文件通过UIC的工具变成 .cpp的文件
.cpp再通过编译器变成.o文件
利用UI控制器布局园的计算器:Label:用户可以看见的东西,这个标签可以替换成字/图片

这里.cpp生成.o文件,存储在链接器中,这样文件不管在哪运行,都不影响可行性文件渲染效果
二.QRC文件
1.概念
QRC文件:属于QT的RCC子系统
QRC文件:QT的资源文件,XML文本文件
QT进行图片的操作:直接将图片等可视化文件接入到.exe,当其他人应用时图片路径上可能出些问题,避免这个问题引出一个文件,称为QRC,将图片变成可以编译的源文件(xxx.cpp,五核心代码)
1.2作用:
资源清单,告诉编译器,将图标图片等打包进exe/dll
访问路径:代码里用 :/images/logo.png(举例)
1.3注意:
图片路径最好放在源码文件中,这样方便写相对路径
2.管理QRC文件方式(图片等加载)
2.1 cmake+qt_add_resources方式
源码
qt_add_resources(ex01 imageresources
PREFIX "/images" # 虚拟路径前缀
FILES xyz/smile.png # 本地图片路径(相对项目根目录)
)
核心:CMake 自动调用 rcc 把 smile.png 打包到 exe 中,代码里用 :/images/xyz/smile.png 访问
PREFIX "/images"在CMake中的意思
是否可以修改?------ 完全可以(且推荐按项目规范改)
PREFIX 的值是自定义的,你可以根据项目需求改成任意合法的路径格式,核心原则是:
合法格式:必须以 / 开头,名称只能包含字母、数字、下划线,比如 /icons、/res、/ui/img 都可以;
语义清晰:前缀要和资源类型匹配,比如
图片用 /images
图标用 /icons
样式表用 /styles,方便维护
注意
不需要开启 CMAKE_AUTORCC ON(开启也不冲突,但属于冗余配置)
2.2 QT资源文件.qrc + cmake直接添加
源码
创建 .qrc 文件(如 res.qrc)
<RCC>
<qresource prefix="/images">
<file>xyz/smile.png</file>
</qresource>
</RCC>
cmake中
(1)set(CMAKE_AUTORCC ON) 当做开关
(2)qt_add_executable(ex01
hello.cpp
res.qrc
)
**代码中访问方式不变:**QPixmap(":/images/xyz/smile.png")
Qt 资源系统支持的所有文件类型(通用)
不管是 qt_add_resources、RCC 工具,还是直接加载本地文件,都能处理以下类型的文件
CMAKE_AUTORCC 是 CMake 提供的自动处理 Qt 资源文件的开关,开启后:
你只需要将 .qrc 文件直接添加到 add_executable/add_library 中,CMake 会自动调用 rcc 工具编译资源文件,无需手动调用 qt_add_resources
需先通过该函数编译 .qrc 生成资源文件的 C++ 代码,再将生成的目标添加到可执行文件中;
适用场景:需要自定义资源编译参数(如指定资源前缀、压缩方式),或兼容老版本项目
核心区别
只是「是否打包到 exe」:
加载"配置文件,翻译文件,ui界面,自定义字体文件,QSS样式表,音视频,脚本"
加载方式:qt_add_resources(打包到 exe)
优点: 无需附带文件、不易丢失、安全
缺点: 修改资源需重新编译
适合场景: 发布版程序、核心静态资源
加载方式: RCC 手动编译(.rcc 文件)
优点: 资源可单独更新、减小 exe 体积
缺点: 需附带 .rcc 文件
