Qt应用程序错过了Windows 10上的开始菜单和任务栏图标

时间:2018-03-20 15:02:28

标签: c++ qt icons windows-10

我在Windows上遇到了Qt Windows应用程序图标的问题。

我已将RC_FILE设置为IDI_ICON1 ICON DISCARDABLE,并且图标在Windows资源管理器中正确显示。

但是我仍然缺少应该在开始菜单中显示的任务栏图标和图标。

我已经替换了适用于Windoes 7的旧32x32 .ico文件,其中一个文件有256x256,32x32,48x48和16x16,但这对它们都没有帮助。

我缺少什么想法?

为了清晰起见添加了屏幕截图:

enter image description here

1 个答案:

答案 0 :(得分:0)

您没有标记要使用的Qt版本,因此我将同时评论qt4和qt5。

任务栏图标

在两个版本中,Windows任务栏图标均源自Dialog / MainWindow / Widget的图标(请参见https://stackoverflow.com/a/29285256)。您可以使用QWidget::setWindowIcon()为特定的窗口及其子窗口设置此项。

这应该可以解决您的问题,但是出于完整性考虑,我也将讨论资源管理器图标。

资源管理器/开始菜单图标

Explorer.exe和“开始菜单”图标均来自您或qmake生成的* .rc文件。您可以按照自己问题的注释中的说明,使用带有RC_FILE in Qt4 or Qt5的自己的* .rc文件进行设置,我相信您已经尝试过,但是sometimes this will create a conflict with other qmake callsVERSION这样会创建第二个*覆盖第一个文件的.rc文件。

不幸的是,在Qt4中,您运气不好。您必须自己在* .rc文件中完成所有工作,或者放弃某些功能,例如VERSION。

但是,Qt5添加了一个新选项RC_ICON,可以与其他与RC相关的qmake变量很好地配合使用。只要您可以使用qmake生成* .rc文件,就可以解决问题。

此处应该设置的应用程序图标应级联到任务栏和标题栏中的窗口图标,但是根据我的经验,这似乎没有发生,将它们分开设置更有意义。分辨率仍然有所不同,因此更好地控制是很好的。

有关Qt5官方文档,请参见以下链接:http://doc.qt.io/qt-5/appicon.html