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

标签 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 上编译这个应用程序的版本。但它看起来不像是完美的解决方案。

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

最佳答案

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

  • 在应用程序目录中创建目录imageformats
  • qico.dll复制进去。

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

关于c++ - QApplication::setWindowIcon 适用于 Windows XP,但不适用于 Windows 7,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19587359/

相关文章:

c++ - 我如何知道用于与我的串行端口通信的十六进制?

c++ - Qt QMainWindow 中央小部件删除

qt - 如何恢复Qt Creator Designer widget box?

c++ - Windows 7 上的 DLL 重定向

.net - 在 .Net 中自定义 OpenFileDialog

c++ - CSmtp 不会发送电子邮件附件。但是没有附件它工作正常。 (c++)

c++ - 为什么我不能将 const 映射结构传递给 C++ 中的函数?

php - 尝试启动 MySQL 时出现 "Error 1067: The process terminated unexpectedly"

c++ - 通过网络发送指向静态函数的指针是否安全?

c++ - 将 Qt 项目文件迁移到 CMake