实际上......结果非常简单......
HICON hIcon = (HICON)LoadImage( GetModuleHandle( nullptr ), MAKEINTRESOURCE( IDI_ICON1 ), IMAGE_ICON, 0, 0, LR_DEFAULTSIZE | LR_LOADTRANSPARENT );
setWindowIcon( QIcon( QtWin::fromWinHICON( hIcon ) ) );
::DestroyIcon( hIcon );
Run Code Online (Sandbox Code Playgroud)
我认为Goz的帖子很适合你的问题.但是如果你想避免使用本机Windows API(实际上这是优选的,因为设置应用程序图标取决于平台)我会选择这种看似不那么优雅的方法:
1) in your .pro file:
win32:RC_FILE=your_rcfile_with_icon.rc
RESOURCES += qt_Resource_file.qrc
2) Add the same icon as in your .rc file to the qt .qrc file (i.e. embedd it twice)
3) in your main file:
setWindowIcon(QIcon(":/the_icon.ico"));
Run Code Online (Sandbox Code Playgroud)
这可以避免本机API调用,并且您的代码仍然可移植.SEttign应用程序图标对于每个平台来说都是不幸的.因此,如果您需要可移植代码,则应该真正避免本机调用.