我通常使用一個單獨的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