ubuntu基于cmakelist的Qt工程,如何将图片打包进二进制程序

qt界面使用的图片打包进入二进制可执行程序,可以避免发布的软件,因为路径问题无法加载图片的问题。

以下步骤参考自百度AI.

步骤如下:

1.创建一个新的Qt资源文件(.qrc文件)

2.在*.qrc文件中添加图片路径

qrc文件使用open with下的plain text editor打开。

打开后会包含红框内容,我是删掉之后程序才可以运行。或者直接复制下面内容给,然后替换文件路径。

<!DOCTYPE RCC>
<RCC version="1.0">
    <qresource prefix="/">
        <file>images/myimage.png</file>
        <!-- 添加更多图片或其他资源 -->
    </qresource>
</RCC>

"images/myimage.png"包含了图片路径及图片名称,可以是相对路径。

3.配置CMakeLists.txt以包含Qt资源

接下来,你需要配置你的CMakeLists.txt文件来包含这个Qt资源文件。你需要使用qt5_add_resources命令来将.qrc文件转换为一个C++源文件,并将其添加到你的项目中。

cmake_minimum_required(VERSION 3.10)

project(MyQtProject)

# 查找Qt5组件
find_package(Qt5 COMPONENTS Core Widgets REQUIRED)

# 添加Qt5资源文件
qt5_add_resources(RESOURCES_RCC resources.qrc)

# 添加你的源文件
add_executable(MyQtProject main.cpp ...)

# 将资源文件添加到目标可执行文件中
target_sources(MyQtProject PRIVATE ${RESOURCES_RCC})

# 链接Qt5库
target_link_libraries(MyQtProject Qt5::Core Qt5::Widgets)

4.在Qt代码中使用资源

一旦你的资源被包含在项目中,你就可以在Qt代码中使用它们了。使用:前缀加上你在.qrc文件中指定的前缀和文件名来引用资源。例如:

QPixmap pixmap(":/images/myimage.png");

注意qrc中文件名与程序中文件名一致。

注意图片存放的地址,要不然会报如下问题。

相关推荐
激昂~逐流3 分钟前
继电器介绍及qt操作继电器实战
开发语言·qt·协议·继电器·qserialport
yugu2day4 分钟前
etcd 的Put请求处理
数据库·etcd
阿东日志10 分钟前
Redis高级----主从、哨兵、分片、脑裂原理
数据库·redis·缓存·原理
不熬夜的码农。34 分钟前
pyqt5按选择顺序多选图并显示缩略图
开发语言·python·qt
漠北银虎2 小时前
【学习分享】应用架构之持久化数据状态管理
数据库·学习·架构
柴...2 小时前
MySql
数据库·mysql
乐乐吃不饱2 小时前
android之SQLiteDatabase
数据库·oracle
wbo1123 小时前
mac上编译redis ,报错fstat64
数据库·redis·macos
zcccsss4 小时前
Redis一些问题
java·数据库·redis·缓存
CoderJia程序员甲4 小时前
MySQL字符串比较忽略尾随空格
数据库·mysql