QApplication :: setWindowIcon适用于Windows XP,但不适用于Windows 7

时间:2013-10-25 10:29:03

标签: c++ qt windows-7 windows-xp qt5

在一个简单的Qt应用程序中,从这样开始:

int main(int argc, char* argv[])
{
  QApplication app(argc, argv);
  app.setWindowIcon(QIcon(":/qapp/appicon.ico"));
...

我们在第二行设置了图标(资源中的这一行和图标文件是我的测试程序和Qt向导生成的应用程序之间的唯一区别)。此应用程序在Windows XP上运行良好,但在Windows 7上,我们无法在窗口的左上角看到我们的图标(系统显示默认图标而不是我的appicon.ico)。

开发人员计算机的配置:

  • Windows XP-SP3,
  • Qt 5.1,
  • MSVS2010-SP1。

更新

开发人员的操作系统是Windows XP,所以我们有临时答案。当我们使用Windows 7在计算机上编译此应用程序时,问题消失了(应用程序在WinXP和Win7上正确显示图标)。所以现在我们必须在Windows 7上编译这个应用程序的版本。但它看起来不是完美的解决方案。

你有什么想法,如何更好地解决这个问题?

2 个答案:

答案 0 :(得分:4)

类似的问题是.ico icons not showing up on Windows。 解决方案很简单:

  • 在application dir中创建目录imageformats
  • 复制qico.dll

如果没有此插件,QIcon无法读取.ico文件。所以问题不在Windows 7和Windows XP中。问题出在不同计算机上的默认路径变量中。

答案 1 :(得分:-1)

我的猜测是你必须创建一个包含以下内容的资源文件windows_icon.rc

IDI_ICON1               ICON    DISCARDABLE     "images/app-icon-48.ico"

并将此行添加到您应用的.pro文件中:

RC_FILE = windows_icon.rc

这是您在Windows上设置应用程序图标的方式(成为exe文件图标的方式)