我通常使用一个单独的PNG图片(16×16像素,例如“./Icons/app_window.png”)使用setWindowIcon()函数在我的主窗口类的构造函数来设置标题栏图标:
this->setWindowIcon(QIcon(QLatin1String(":/Images/Icons/app_window.png")));
对于您可以使用下面的优秀免费的应用程序的图标,其余: http://www.icofx.ro/
它允许你创建一个既“myapp.ico”文件(MS-Windows上)和“myapp.icns”文件(适用于Mac OSX),如果您从256x256图像开始,它可以为您自动创建所有图标大小!
对于Mac OS/X你必须把下面一行在你的 “MyApp.pro” 文件:
ICON = Icons/myapp.icns
在MS-Windows你必须把下面一行在你的“MyApp的。亲”文件:
win32::RC_FILE = myapp.rc
,你必须同时创建一个‘myapp.rc’文件,该文件是这样的:
IDI_ICON1 ICON DISCARDABLE "./Icons/myapp.ico"
#include <windows.h>
#include "MyAppVersion.h"
VS_VERSION_INFO VERSIONINFO
FILEVERSION VER_FILEVERSION
PRODUCTVERSION VER_PRODUCTVERSION
BEGIN
BLOCK "StringFileInfo"
BEGIN
BLOCK "040904E4"
BEGIN
VALUE "CompanyName", VER_COMPANYNAME_STR
VALUE "FileDescription", VER_FILEDESCRIPTION_STR
VALUE "FileVersion", VER_FILEVERSION_STR
VALUE "InternalName", VER_INTERNALNAME_STR
VALUE "LegalCopyright", VER_LEGALCOPYRIGHT_STR
VALUE "LegalTrademarks1", VER_LEGALTRADEMARKS1_STR
VALUE "LegalTrademarks2", VER_LEGALTRADEMARKS2_STR
VALUE "OriginalFilename", VER_ORIGINALFILENAME_STR
VALUE "ProductName", VER_PRODUCTNAME_STR
VALUE "ProductVersion", VER_PRODUCTVERSION_STR
END
END
BLOCK "VarFileInfo"
BEGIN
VALUE "Translation", 0x409, 1252
END
END
#include“MyAppVersion.h”和其他选项是可选的,但可以用它来定义所有VER_xxx常量,而不是像“MyAppName”那样直接将其作为常量字符串。为图标定义唯一重要的行是第一个:
IDI_ICON1 ICON DISCARDABLE "./Icons/myapp.ico"
这意味着文件“MyApp.ico”所在的文件夹中./Icons/
还要注意在MS-Windows,如果你修改你的“myapp。ico“文件,重建你的项目并再次运行你的应用程序,由于windows-explorer的图标缓存,图标并不总是显示正确 下面是清除/重建windows-explorer图标缓存的各种方法的链接: Rebuild icon cache to fix incorrectly displayed icons
有趣的是,[ALT + TAB]中显示的图标是我通过'QApplication :: setWindowIcon()'设置的图标。根据你的说法,我认为这不起作用... – mefiX 2011-05-31 15:51:08
我假设你正在使用MS-Windows(你没有告诉我们)。根据Qt文档(和Fivos的答案),你需要在RC文件中有一个图标,以便Windows资源管理器可以显示一个应用程序图标但可能[ALT + TAB]使用不同的方法来定位图标。 – hmuelner 2011-06-01 08:55:35