QT/C++在MAC上-应用程序图标无法设置

3
我遇到了一个奇怪的问题。在与我的“*.pro”QT项目文件相同的文件夹中,我有一个Resources/myIcon.png。
我正在尝试将其设置为在OSX上运行的构建应用程序的图标。我阅读了文档,并建议在.pro文件中放置“ICON =”。我这样做了,但由于某种原因,该图标确实被复制到我的应用程序内容中的资源文件夹中,但.pfile的图标字段仍为空白。即使我手动更改为“resources/myIcon.png”,它也无法工作。
我做错了什么?

1
哎呀...吓人的想法,必须是一个*.icns文件吗? - JasonGenX
3个回答

16

手动删除生成的应用程序包。仅运行QMakeRebuild All不足以完成这项操作!


1
哥们!这个解决了我的问题。我为此苦苦思索了几个小时,而你的小提示帮了我大忙。我只需要按照这篇文章创建一个MyIcon.icns文件,将其放入项目目录中,添加ICON = MyIcon.icns到.pro文件中,然后按照你的建议操作即可。太棒了! - Volomike
哈,我刚刚又遇到了这个问题,试图给自己点赞...可惜这个问题还没有被解决。 - Timmmm
我花了一整天的时间才找到这个答案。我有一些应用程序可以显示图标,有些则不行。删除应用程序包,然后进行qmake和重建似乎可以使其正常工作。此外,我可以通过重命名应用程序包来显示图标。即使我将其重新命名为原始名称,它仍然可以继续工作。我想知道问题是否出在MACOS(我这里是10.12.6)缓存图标信息并且没有注意到更改?尝试更改TARGET名称,然后重新构建。这可以恢复图标。 - Peter Harrison

3
不要在Info.plist中为图标文件设置应用程序包的完整路径,只需设置文件名。Mac OS知道在AppName.app/Contents/Resources中查找它。
据我所知,它必须是ICNS文件。您可以使用Mac OS开发工具中的“Icon Composer”实用程序从.png创建.icns文件。

1

您是指出现在Dock中的图标吗?我将一个.ico文件添加到我的应用程序资源文件中,然后使用以下调用将其设置为我的图标

QApplication::qApp()->setWindowIcon(QIcon(<resource path>));

两个有趣的点。首先,在主应用程序窗口中使用 this->setWindowIcon 设置图标不幸的是不能设置 dock 图标,尽管它可以设置窗口图标。其次,QApplication::setWindowIcon 很好(不需要“qApp()->”),并且可以设置 dock 图标和应用程序窗口图标,尽管 dock 图标在弹跳阶段后设置,因此默认图标会短暂出现;这对大多数用途来说是完全可以接受的。 - Graham Asher

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接