Qt修改exe文件图标
修改Qt生成exe的图标以及软件标题图标
简介
在使用Qt进行桌面应用开发时,为生成的应用软件(exe)设置一个默认图标是非常必要的。对于使用Qt开发的同学,又有两种IDE可供选择:Qt Creator和Visual Studio + Qt Tools,这两种IDE下的设置方式略有不同。
因此,本篇文章将详细介绍如何在这两种IDE环境下为生成的应用软件设置默认图标以及窗口标题图标
QtCreator下添加exe图标
在Qtcreator下有两种方法,第一种是直接在.pro文件里进行设置,第二种是通过Windows下的rc文件来设置。
首先要注意的一点是,使用的.ico文件是不可以直接用jpg等图片格式直接修改后缀名来的,必须是用转换工具来通过jpg转换成ico的格式,不然就会出现[xxx.o Error]的问题
直接添加.ico
Qt的帮助文档里面写了关于怎样修改图标的说明,文档如下:

首先你需要有一个xxx.ico文件(xxx.ico就是你需要修改的图标的文件名字)
然后把xxx.ico文件放到你的工程文件目录下(也就是你的pro文件所在的目录)
然后在.pro文件中添加RC_ICONS = xxx.ico
保存,然后重新构建就可以了,这个方法能够修改资源管理器以及程序运行时的图标。
通过.rc文件修改
Qt的帮助文档同样有:

首先你需要有一个xxx.ico文件(xxx.ico就是你需要修改的图标的文件名字)
然后你需要创建一个xxx.rc文件
在xxx.rc文件中添加IDI_ICON1 ICON "xxx.ico"
然后在.pro文件中添加RC_FILE += xxx.rc
Visual Studio下添加exe图标
在Visual Studio的环境下,我们执行以下步骤:
- 右击项目,点击添加,选择资源文件

image-20230611142024270.png)
- 选择icon文件,点击导入

- 选择你自己制作好的ico,确定。然后再生成,就可以看到exe的图标改变了。

设置窗口标题图标
我们在设置了软件图标之后,发现任务栏和窗口的图标还是默认的,但其实设置的方法很简单,代码如下:
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MarkdownDemo w;
w.show();
w.setWindowIcon(QIcon("D:\\Desktop\\logo.jpg"));
return a.exec();
}
调用setWindowIcon就可以设置软件的标题图标。

关于.rc文件
在Windows下,Qt对于.rc文件几乎没有什么介绍,只有一个手册的部分,Setting the Application Icon。但是在MSDN上面有,见ICON resource,VERSIONINFO resource。
关于利用QtCreator自动生成rc文件,你可以参考这篇博文Qt 之生成 Window 资源文件(.rc 文件),这里面讲了如何利用Qt自动生成rc文件,你可以根据自己的要求进行修改。当然你也可以用前面说的方式——使用Visual Studio来生成rc文件。
以下借鉴大佬的博文,Windows 资源文件(.rc文件)小记
ICON resource
格式:
nameID ICON filename
nameID : 标识资源的唯一名称或16位无符号整数值。
filename: 文件名,如果文件不在当前搜索路径,必须就要是绝对路径。
例子:
IDI_ICON ICON "desk.ico"
IDI_ICON1 ICON "custom.ico"
VERSONINFO resource
格式:
versionID VERSIONINFO fixed-info {block-statement...}
或者
versionID VERSIONINFO
fixed-info
BEGIN
block-statement
. . .
END
VERSIONINFO
| 变量名 | 含义 |
|---|---|
| versionID | 版本信息资源标识符。该值必须为1 |
| fixed-info | 版本信息,例如文件版本或者预期的操作系统 |
| block-statement | 块语句,包含字符串和变量的信息 |
fixed-info
| 变量名 | 含义 | 例子 |
|---|---|---|
| FILEVERSION | 文件的二进制版本号,4个16位整数其实是2个32位整数 | FILEVERSION 3,10,0,61 |
| PRODUCTVERSION | 产品版本号,同上 | (1,0,0,0) |
| FILEFLAGSMASK | 指示FILEFLAGS语句中的哪些位是有效的 | FILEFLAGS VS_FF_DEBUG | VS_FF_PRERELEASE |
| FILEFLAGS | 文件属性 | VS_FF_DEBUG |
| FILEOS | 文件系统 | VOS__WINDOWS32 |
| FILETYPE | 文件种类 | VFT_APP |
| FILESUBTYPE | 文件功能 | VFT2_DRV_KEYBOARD |
详细的参见:Creating a Proper Version Information Resource
上面介绍了如何设置生成的exe的图标以及窗口标题的设置,下一期,我们讲一讲,怎么设置某种后缀的文件默认打开软件以及关联某种后缀的文件图标,敬请期待!
创作不易,如果本篇文章对你有帮助,烦请点赞、收藏支持一下
Qt修改exe文件图标的更多相关文章
- 用UpdateResource修改EXE文件图标(已修正)
//请自行添加到 Type 处PICONDIRENTRY = ^ICONDIRENTRY;ICONDIRENTRY = packed record bWidth: Byte; bHeight: Byt ...
- VC6.0生成的exe文件图标
以下是我网上收到的方法 我都试过 成功不了 具体说下我遇到的问题 VC6.0生成的exe文件图标是用Icon下几个图标中value值最小的,顺序为IDR_MAINFRAME.IDR_ICONTETYP ...
- C语言Win32 Application 的标题栏图标,任务栏图标,exe文件图标问题
我们这里新建的首先是一个空工程,新建c文件. 因为是空工程,我们没有资源文件,要用到图标资源,首先要新建和导入图标为资源. 选择引入资源,选择要引入的ico文件 完成,重命名保存Script_icon ...
- 直接读取修改exe文件
1. 前言 配置器的编写有很多的方式,主要是直接修改原始的受控端的程序,有的方式是把受控端和配置信息都放到控制端程序的内部,在需要配置受控端的时候直接输入配置信息,生成受控端:也有的方式是在外部直接修 ...
- Win10系统桌面exe文件图标消失不见了的解决方法
使用 Windows10正式版系统 过程中,发现桌面上的一些exe文件图标突然消失不见了.虽然这些exe程序还能够正常运行,可是感觉还是非常不舒服.这该怎么办呢?接下来,就随小编看看Windows10 ...
- Qt设置生成的exe文件图标
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明.本文链接:https://blog.csdn.net/qq_37354286/article/d ...
- qt的exe文件查找依赖的dll
用qtcreater编译完工程生成的exe文件往往会依赖dll文件.如何一次定位exe文件所以依赖的所有dll文件呢,今天发现了软件叫hap-depends. 截图如下: 用这个软件打开exe文件就会 ...
- Python文件.py转换为.exe可执行程序,制作.exe文件图标
当大家想要将自己写的Python程序对别人进行展示的时候,你是否还是打开你的Pycharm进行运行展示? 假如是专业的人士看你的代码,一眼就能看懂你的代码,而其实我们可以不需要给代码,利用pyinst ...
- QT添加exe文件的图标LOGO
首先你需要一个ICO文件,这样的一个: 使用百度搜索到的在线工具直接生成一个ICO文件保存到本地就可以了 将这人LOGO.ico文件保存到自己的resource文件夹下 然后在工程中新建一个qrc文件 ...
- 动态修改PE文件图标(使用UpdateResource API函数)
PE文件的图标存储在资源文件中,而操作资源要用到的API函数就是UpdateResource首先我们需要先了解一下ICO格式,参考资料:http://www.moon-soft.com/program ...
随机推荐
- Archlinux常用软件推荐 更新于2022年5月
必装软件# xdg-user-dirs-gtk 执行 xdg-user-dirs-gtk-update 可将更新Home目录路径 包管理工具# yay 代替pacman的包管理 downgrade p ...
- Ubuntu下安装make
方法一:(自动安装) 1.进入root权限:su root 2.更新安装列表:apt-get update 3.安装make:apt-get install ubuntu-make 方法二:(手动安装 ...
- RedisTemplate配置的jackson.ObjectMapper里的一个enableDefaultTyping方法过期解决
1.前言 最近升级SpringBoot,从2.1.6版本升级到2.2.6版本,发现enableDefaultTyping方法过期过期了. 该方法是指定序列化输入的类型,就是将数据库里的数据安装一定类型 ...
- Qt开源作品31-屏幕截图控件
一.前言 屏幕截图控件在我的很多项目中都有用到,尤其是嵌入式的系统上的软件,因为在嵌入式系统中,基本上系统都很精简,甚至连UI都没有,开机之后直接运行的就是Qt程序,很多时候需要对软件进行截图保存下来 ...
- Solution Set - “请背诵每条魔法的禁忌”
目录 0.「HAOI 2018」「洛谷 P4494」反色游戏 1.「JSOI 2010」「洛谷 P6029」旅行 2.「CTSC 2017」「洛谷 P3774」最长上升子序列 3.「CTSC 2018 ...
- CDS标准视图:ABC标识文本 I_ABCIndicatorText
视图名称:ABC标识文本 I_ABCIndicatorText 视图类型:基础视图 视图代码: 点击查看代码 @EndUserText.label: 'ABC Indicator - Text' @V ...
- cpa-经济法
1.法律基本原理 2.基本民事法律制度 3.物权法律制度 4.合同法律制度 5.合伙企业法律制度 6.公司法律制度 7.证券法律制度 8.企业破产法律制度 9.票据与支付计算法律制度 10.企业国有资 ...
- Linux操作系统基础知识
一.输入法的切换Application ----> System Tools ----> Settings ----> Rejino&language ----> In ...
- 第一个shell脚本(bash脚本)
首先它是一个脚本,并不能作为正式的编程语言.因为是跑在linux的shell中,所以叫shell脚本.说白了,shell脚本就是一些命令的集合.运维工作中把常用的一系列的操作都记录到一个文档中,然后去 ...
- 推荐一款非常好用的在线 SSH 管理工具
前言 SSH工具在远程连接.文件传输.远程管理和增强安全性等方面发挥着重要作用,是我们开发人员和系统管理员不可或缺的工具.今天大姚给大家推荐一款非常好用的在线 SSH 管理工具:Xterminal. ...