2017-04-09 85 views
1

在Windows 7中,我對應用程序圖標沒有任何問題。在Windows 10中,可執行文件的圖標沒有問題,但是我對窗口圖標有問題。標題中有默認圖標,而不是我的圖標。Windows 10標題中沒有圖標

這是我的圖標

QIcon icon(":/icons/icon1.ico"); 
setWindowIcon(icon); 

複製imageformats\qico.dll設置爲.\imageformats\沒有幫助。

+0

您是否在Windows 10上重建應用程序,或者它是否是相同的可執行文件(即構建於Win7上並在Windows 10上覆制)? –

+0

建立在Win7上。你認爲在Win10上構建應該有幫助嗎? – Ufx

+0

如果是部署問題,它可能會有所幫助。你用過windeployqt嗎?你可以立即做的是添加一些調試輸出,看看它是否是加載.ico文件或設置窗口圖標的問題。爲了檢查QIcon的有效性,你可以檢查'icon.pixmap(32,32);' –

回答

0

嘗試使用RC文件。

例如:

app.rc

IDI_ICON1 ICON DISCARDABLE "app_icon.ico" 

而* pro文件:

win32 { 
    RC_FILE += app.rc 
} 
+0

已經完成。看起來沒有幫助。 – Ufx

0

QWidget::setWindowIcon()功能僅用於設置窗口的圖標是有用的。它對二進制文件(.exe)圖標沒有影響。

二進制文件圖標由Windows處理,無需運行程序。所以,無論你放在代碼中,它們都不會對可執行文件圖標產生任何影響。

同樣移動qico.dll左右在這裏沒有任何效果。當你的程序運行時,這個DLL由Qt加載。

要更改您的可執行文件圖標,您必須使用Windows資源系統將其嵌入到可執行文件中(不要將其與Qt資源系統混淆)。要做到這一點,當你有一個qmake項目,你可以使用RC_ICONS,RC_FILERC_RES

最簡單的方法是使用RC_ICONS

RC_ICONS = icons/appicon.ico # Path relative to the .pro file 

請注意,設置RC_FILERC_RES將禁用RC_ICONS。請查看文檔:http://doc.qt.io/qt-5/qmake-variable-reference.html#rc-icons

還值得注意的是,Windows保留了圖標緩存,因此如果更改圖標並重建,新圖標可能不會立即顯示。

+0

其實我有一個窗口圖標的問題。沒有exe文件圖標的問題。我編輯了我的問題。 – Ufx