Windows下Qt5程序打包发布与图标设置

117 篇文章 152 订阅

打包发布:

使用QT自带工具(windeployqt )打包方法:

1、release编译生成的程序运行正常之后,找到项目的生成目录,比如 项目源码路径:C:\Qt\helloQt\ 。
它的项目生成目录是 C:\Qt\build-helloQt-Desktop_Qt_5_4_0_MinGW_32bit-Release\ 。
进入这个文件夹,在进入它的子文件夹 release 里面,找到 helloQt.exe,将这个exe 复制到一个新的单独的文件夹里用于发布,比如存到 D:\helloQt\ 文件夹里面,此时打开helloQt.exe会提示缺少dll之类的信息,程序打不开。
2、“开始”菜单中打开Qt命令行工具:
这里写图片描述
如:Qt 5.4 for Desktop (MinGW 4.9 32 bit)
输入命令:cd /d D:\helloQt
进入D:\helloQt 文件夹之后,继续输入:windeployqt helloQt.exe


如果是QML程序,输入:

windeployqt helloQt.exe --qmldir D:\Qt\Qt5.4.0\5.4\mingw491_32\qml

**注意:**将上述代码的D:\Qt\Qt5.4.0\5.4\mingw491_32\qml替换为你自己的Qt安装目录的qml文件夹路径。如果发布出现问题,将上述路径改为你自己程序.pro文件所在路径。


之后会看到命令行进行了一系列操作,随后,D:\helloQt文件夹中会出现helloQt.exe运行所需文件,这时候打开helloQt.exe程序就可以直接运行了。(当然,也有特殊情况,比如:如果使用了MySQL,还需要复制libmysql.dll到这个文件夹)
程序发布时,按照上述方法,将helloQt.exe改为你自己的程序名称,对应路径同步改一下即可。

这个时候,我们的程序如果需要发布,必须将整个文件夹发出去,显得有些繁重,有没有解决方案呢?有:
使用Engima Virtual Box将我们的这个文件夹压缩为一个可执行文件:
下载地址:Engima Virtual Box
选择
这里写图片描述
安装之后,打开:
这里写图片描述
选择好路径之后,将可执行程序及其运行所需的文件加入,这里选择Add File(s)可以加入文件,选择Add Folder Recursive可以加入文件夹,当然,我们也可以选择将文件和文件夹一起拖进来切记!一定要将可执行程序同目录所有文件及文件夹加进来!
这里写图片描述
这里写图片描述
这里写图片描述
最后,点击窗口右下角的Precess
片刻之后,就可以在我们的输出路径看到生成的EXE文件了,我们将新生成的EXE文件移动到其他没有运行环境的文件夹中,打开,程序正常运行。
这里写图片描述
下面是Qt官网对于windeployqt工具的描述:

用法:windeployqt [options] [files]
Qt部署工具5.9.0

使用windeployqt最简单的方法是添加Qt的bin目录
安装(例如<QT_DIR \ bin>)到PATH变量,然后运行:
  windeployqt <path-to-app-binary>
如果ICU,ANGLE等不在bin目录中,则需要在PATH中
变量。如果您的应用程序使用Qt Quick,请运行:
  windeployqt --qmldir <path-to-app-qml-files> <path-to-app-binary>

选项:
  -  ?, -h,--help显示此帮助。
  -v,--version显示版本信息。
  --dir <目录>使用目录而不是二进制目录。
  --libdir <path>将库复制到路径。
  --plugindir <path>将插件复制到路径。
  --debug假设调试二进制文件。
  - 释放假设释放二进制文件。
  --pdb部署.pdb文件(MSVC)。
  - 强制更新文件。
  - 慢跑模拟模式。正常行为,但不要
                            复制/更新任何文件。
  --no-patchqt不要修补Qt5Core库。
  --no-plugins跳过插件部署。
  --no-libraries跳过库部署。
  --qmldir <directory>从目录开始扫描QML-导入。
  --no-quick-import跳过Qt Quick导入的部署。
  --no-translations跳过翻译的部署。
  --no-system-d3d-compiler跳过系统D3D编译器的部署。
  --compiler-runtime部署编译器运行时(仅限桌面)。
  --no-compiler-runtime不要部署编译器运行时(仅限桌面)。
  --webkit2部署WebKit2(web进程)。
  --no-webkit2跳过WebKit2的部署。
  --json以JSON格式打印到stdout。
  - 角度的角度部署。
  - 无角度禁用ANGLE的部署。
  --no-opengl-sw不要部署软件光栅化程序库。
  --list <选项>只打印复制文件的名称。
                            可用选项:
                             source:源文件的绝对路径
                             目标:目标文件的绝对路径
                             relative:相对目标文件的路径
                                       到目标目录
                             映射:输出源和相对
                                       目标,适合在一个
                                       Appx映射文件
  --verbose <level>详细级别。

可以通过传递它们的名称(-xml)或通过传递来删除Qt库
该名称由--no-(--no-xml)前缀。可用的库:
蓝牙并发核心声明式设计器设计者组件
enginio gui qthelp多媒体multimediawidgets multimediaquick网络nfc
opengl定位printsupport qml qmltooling快速quickparticles quickwidgets
脚本scripttools传感器serialport sql svg测试webkit webkitwidgets
websockets widgets winextras xml xmlpatterns webenginecore webengine
webenginewidgets 3dcore 3drenderer 3dquick 3dquickrenderer 3dinput geoservices
webchannel texttospeech serialbus

参数:
  [files]包含二进制文件的二进制文件或目录。

设置图标:

1、同步设置程序运行图标和程序桌面图标

1.1、选择一个你喜欢的ico图片文件,放在源码同级路径
这里写图片描述

1.2、在程序的.pro文件中添加一行代码:

RC_ICONS = app.ico //设置图标 或  RC_FILE = app.rc 
//通过设置系统变量 VERSION 或 RC_ICONS (至少一个),qmake 会自动生成 .rc 文件。
VERSION = 1.0.0.0 //设置程序版本号,可省略

等号右侧是你的ico文件名称

1.3、重新编译运行程序
这里写图片描述

1.4、此后,我们就可以看到程序运行图标和程序桌面图标都变成了我们设置的ico图标
这里写图片描述
这里写图片描述

2、代码中单独设置程序运行图标
2.1、在项目中添加Qt资源文件Qt Resource File:
这里写图片描述
任意命名,路径选择自己图标所在文件夹,我这里命名为source,选择的image文件夹与项目源文件是同级目录
这里写图片描述

2.2、在项目源文件的构造函数内添加如下代码:

setWindowIcon(QIcon(":/source/image/tray.jpg"));

重新编译运行程序之后,程序的运行图标就变成了我们设置的图标,不过这种办法无法对程序桌面图标进行设置。

  • 11
    点赞
  • 77
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
在Linux下,将Qt程序打包发布可以通过以下步骤来完成: 1. 确保系统已安装Qt开发工具包以及相关依赖库。如果没有安装,可以通过包管理器安装,例如在Debian/Ubuntu上使用apt-get工具,执行命令sudo apt-get install build-essential qt5-default。 2. 使用Qt Creator或命令行编译和构建程序。在Qt Creator中,打开项目文件(通常是.pro文件),选择适当的构建套件并执行构建操作。在命令行中,使用qmake生成Makefile文件,然后通过make命令进行编译。 3. 检查程序是否可独立运行。在设计程序时,确保程序的依赖库是静态链接的,以便在其他机器上可以独立运行。 4. 创建一个目录,将编译生成的可执行文件和相关资源文件放入其中。 5. 创建一个启动脚本。在这个脚本中,设置程序运行所需的环境变量,并执行可执行文件。 6. 将整个目录打包成一个压缩文件。可以使用tar命令将目录打包成.tar文件,或使用zip命令将其打包成.zip文件。 7. 将压缩文件发布到目标系统上。可以通过网络上传或将其复制到可移动媒体上。 8. 在目标系统上解压缩压缩文件。如果使用.tar文件,可以使用tar命令进行解压缩,如果使用.zip文件,可以使用unzip命令进行解压缩。 9. 在目标系统上运行启动脚本。确保目标系统上已经安装了Qt运行时所需的依赖库。 通过以上步骤,可以将Qt程序打包为一个可独立运行的文件,并方便地在Linux系统上进行发布
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值