Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/128.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ Qt应用程序未在Windows 10上显示开始菜单和任务栏图标_C++_Qt_Icons_Windows 10 - Fatal编程技术网

C++ Qt应用程序未在Windows 10上显示开始菜单和任务栏图标

C++ Qt应用程序未在Windows 10上显示开始菜单和任务栏图标,c++,qt,icons,windows-10,C++,Qt,Icons,Windows 10,我的Qt Windows应用程序在Windows上的图标有问题 我已将RC_文件设置为IDI_ICON1图标可丢弃,该图标在Windows资源管理器中正确显示 但我仍然缺少任务栏图标和应该显示在“开始”菜单中的图标 我已经用一个具有256x256、32x32、48x48和16x16的文件替换了适用于Windoes 7的旧32x32.ico文件,但这也没有帮助 你知道我错过了什么吗 为清晰起见添加了屏幕截图: 您没有标记正在使用的Qt版本,因此我将对qt4和qt5进行评论 任务栏图标 在这两个版本

我的Qt Windows应用程序在Windows上的图标有问题

我已将
RC_文件
设置为IDI_ICON1图标可丢弃,该图标在Windows资源管理器中正确显示

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

我已经用一个具有256x256、32x32、48x48和16x16的文件替换了适用于Windoes 7的旧32x32.ico文件,但这也没有帮助

你知道我错过了什么吗

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


您没有标记正在使用的Qt版本,因此我将对qt4和qt5进行评论

任务栏图标

在这两个版本中,Windows任务栏图标都源自您的Dialog/MainWindow/Widget图标(请参阅)。可以使用为特定窗口及其子窗口设置此选项

这应该可以解决您的问题,但为了完整起见,我还将讨论Explorer图标

浏览器/开始菜单图标

Explorer.exe和“开始”菜单图标源自您或qmake生成的*.rc文件。您可以使用自己的*.rc文件进行设置,如对问题的评论中所述,我相信您已经尝试过,但是像
VERSION
一样,创建第二个*.rc文件,覆盖第一个文件

不幸的是,在第四季度你运气不好。您必须在*.rc文件中自己完成所有这些工作,或者放弃某些功能,如版本

然而,Qt5添加了一个新选项,可以很好地与其他RC相关的qmake变量配合使用。只要您同意qmake生成*.rc文件,就应该可以了

这里设置的应用程序图标应该级联到任务栏和标题栏中的窗口图标,但根据我的经验,这似乎没有发生,单独设置它们更有意义。无论如何,分辨率是不同的,所以拥有更好的控制是很好的


有关Qt5的官方文档,请参见此链接:

我们在VS项目中添加了一个.ico文件和一个.rc源文件,以设置应用程序图标(类似于您问题中所述)。我们的GUI也是基于Qt的。如果我在VS2013中启动应用程序(用于调试),我会在任务栏中看到一个默认的应用程序图标(这让我有点困惑,直到我习惯了)。然而,在发布版中,一切都很好。这与您的情况不同吗?我记得我曾经(在Windows7甚至XP上)在应用程序已经构建和测试之后更改/修复了一个应用程序图标。我注意到Explorers缩略图视图中的更新被延迟了。我假设Windows/Explorer在某个地方缓存了旧图标,过了一段时间,这种恼人的效果消失了。(因此,我没有深入挖掘…@Scheff:我们不使用VS,我们使用mingw64从Linux交叉编译。我已经担心VS可能会使用一些缺乏文档记录的“魔法”来制作图标。正如我提到的,Explorer很好,它是应用程序运行时进入任务栏的东西。几年前,我曾经手动创建一个.rc文件,可能从任何地方读取文档。从那以后,我一直在复制/粘贴它们。因此,我不知道为什么会有这些东西。但是,我的
.rc
文件包含两个图标条目:
IDI_ICON1图标可丢弃的“myApp.ico”
IDI_APPICON图标“myApp.ico”
。我刚在谷歌上搜索了
IDI_APPICON
,但在一些热门搜索中,我只能找到
\define IDI_APPICON 101
。我甚至不知道IDI是从哪里来的。WinAPI?在我们的资料中没有这样的定义。我的
.rc
文件中还有一条注释,说明图标定义的顺序很重要:
//将ID值最低的图标放在第一位,以确保应用程序图标//在所有系统上保持一致。