Qt应用程序和窗口下的窗口图标

Goz*_*Goz 4 c++ windows icons qt

我通过嵌入包含图标的标准Windows资源文件创建了一个简单的应用程序图标.但是,我还想在我的主应用程序窗口中使用此图标.是否有捷径可寻?到目前为止,似乎唯一的方法是单独加载包含窗口图标的图标,而不是重用已经存在的图标.这似乎是一个可怕的解决方案.除了其他的东西,实际的图标嵌入在我的可执行文件中我不想分发它两次.

有人知道怎么做吗?

Goz*_*Goz 7

实际上......结果非常简单......

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)


pok*_*909 5

我认为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应用程序图标对于每个平台来说都是不幸的.因此,如果您需要可移植代码,则应该真正避免本机调用.