说明
本文参考QT 设置程序图标、QT5.8.0 vs2013平台更改程序运行icon图标和# Qt之任务栏系统托盘图标三篇博文做了一定整理。
应用程序图标主要有以下四种
-
主窗口图标:
-
状态栏上显示图标:
-
执行程序本身图标:
-
系统托盘图标:
主窗口图标
在程序中使用setWindowIcon()
函数实现。
状态栏上显示图标
在程序中使用setWindowIcon()
函数实现。
执行程序本身图标:
这里涉及到两种方式,一种是使用QtCreator开发代码,另一种是采用Vs+Qt方式开发代码。
使用QtCreator
有两种方式可以实现:
使用qmake来生成makefile文件,只需要在
.pro
中添加:
RC_ICONS = logo.ico
然后,重新生成makefile文件和应用程序,对应的.exe可执行程序将会出现刚才看到的图标。
这种情况下,要将logo.ico
与.pro
文件放到同一个文件夹下。在项目代码文件夹中,新建一个logo.txt文件,在文件里写上以下内容:
IDI_ICON1 ICON DISCARDABLE "logo.ico"
然后重命名为logo.rc文件。
在.pro文件里添加:
RC_FILE = logo.rc
重新编译就可以了。
使用Vs+Qt
-
项目上右击->添加->资源->选择icon
-
确定之后,项目中就会出现一个xxx.rc 的文件
-
运行文件的图标变成了设置的app_32.ico
系统托盘图标
使用QSystemTrayIcon
类,setIcon()
设置图标,setToolTip()
设置鼠标放上时显示信息,show()
显示系统托盘图标。
系统托盘的鼠标事件参考Qt之任务栏系统托盘图标博文。
注意
我们就多讨论一点。如果只设置了可执行程序的图标,而没有设置窗口左上方的图标,会是什么样的呢?
答案就是 如果只设置了可执行程序的图标,而没有设置窗口左上方的图标。结果就是窗口左上方的图标、状态栏图标和可执行程序图标将使用同一个图标。 反之却不能。