在Windows 7中,我對應用程序圖標沒有任何問題。在Windows 10中,可執行文件的圖標沒有問題,但是我對窗口圖標有問題。標題中有默認圖標,而不是我的圖標。Windows 10標題中沒有圖標
這是我的圖標
QIcon icon(":/icons/icon1.ico");
setWindowIcon(icon);
複製imageformats\qico.dll
設置爲.\imageformats\
沒有幫助。
在Windows 7中,我對應用程序圖標沒有任何問題。在Windows 10中,可執行文件的圖標沒有問題,但是我對窗口圖標有問題。標題中有默認圖標,而不是我的圖標。Windows 10標題中沒有圖標
這是我的圖標
QIcon icon(":/icons/icon1.ico");
setWindowIcon(icon);
複製imageformats\qico.dll
設置爲.\imageformats\
沒有幫助。
嘗試使用RC文件。
例如:
app.rc
IDI_ICON1 ICON DISCARDABLE "app_icon.ico"
而* pro文件:
win32 {
RC_FILE += app.rc
}
已經完成。看起來沒有幫助。 – Ufx
的QWidget::setWindowIcon()
功能僅用於設置窗口的圖標是有用的。它對二進制文件(.exe)圖標沒有影響。
二進制文件圖標由Windows處理,無需運行程序。所以,無論你放在代碼中,它們都不會對可執行文件圖標產生任何影響。
同樣移動qico.dll
左右在這裏沒有任何效果。當你的程序運行時,這個DLL由Qt加載。
要更改您的可執行文件圖標,您必須使用Windows資源系統將其嵌入到可執行文件中(不要將其與Qt資源系統混淆)。要做到這一點,當你有一個qmake項目,你可以使用RC_ICONS
,RC_FILE
或RC_RES
。
最簡單的方法是使用RC_ICONS
:
RC_ICONS = icons/appicon.ico # Path relative to the .pro file
請注意,設置RC_FILE
或RC_RES
將禁用RC_ICONS
。請查看文檔:http://doc.qt.io/qt-5/qmake-variable-reference.html#rc-icons
還值得注意的是,Windows保留了圖標緩存,因此如果更改圖標並重建,新圖標可能不會立即顯示。
其實我有一個窗口圖標的問題。沒有exe文件圖標的問題。我編輯了我的問題。 – Ufx
您是否在Windows 10上重建應用程序,或者它是否是相同的可執行文件(即構建於Win7上並在Windows 10上覆制)? –
建立在Win7上。你認爲在Win10上構建應該有幫助嗎? – Ufx
如果是部署問題,它可能會有所幫助。你用過windeployqt嗎?你可以立即做的是添加一些調試輸出,看看它是否是加載.ico文件或設置窗口圖標的問題。爲了檢查QIcon的有效性,你可以檢查'icon.pixmap(32,32);' –