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的帮助文档里面写了关于怎样修改图标的说明,文档如下:
RC_ICONS

✨ 首先你需要有一个xxx.ico文件(xxx.ico就是你需要修改的图标的文件名字)

✨ 然后把xxx.ico文件放到你的工程文件目录下(也就是你的pro文件所在的目录)

✨ 然后在.pro文件中添加RC_ICONS = xxx.ico

✨ 保存,然后重新构建就可以了,这个方法能够修改资源管理器以及程序运行时的图标。

通过.rc文件修改

Qt的帮助文档同样有:
RC_FILES

✨ 首先你需要有一个xxx.ico文件(xxx.ico就是你需要修改的图标的文件名字)

✨ 然后你需要创建一个xxx.rc文件

✨ 在xxx.rc文件中添加IDI_ICON1 ICON "xxx.ico"

✨ 然后在.pro文件中添加RC_FILE += xxx.rc

Visual Studio下添加exe图标

在Visual Studio的环境下,我们执行以下步骤:

  1. 右击项目,点击添加,选择资源文件

在这里插入图片描述

  1. 选择icon文件,点击导入

在这里插入图片描述

  1. 选择你自己制作好的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 resourceVERSIONINFO 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

🚩 在本文中,我们已经介绍了如何在Qt Creator和Visual Studio + Qt Tools中设置生成的exe的图标以及窗口标题的设置。在下一期,我们将会讲解如何设置某种后缀的文件默认打开软件以及关联某种后缀的文件图标。敬请期待!

创作不易,如果本篇文章对你有帮助,烦请点赞、收藏支持一下🥳

  • 8
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值