在Mac上使用QT 5.3设置应用程序图标的问题

3

我一直在尝试按照这里的指示设置我的应用程序图标:

http://qt-project.org/doc/qt-5/appicon.html

如果我理解正确,这个过程应该相当简单:
1. 使用iconutil创建一个图标文件(`FlySightViewer.icns`)。我按照这里的说明进行操作:https://dev59.com/Smct5IYBdhLWcg3wKqQd#20703594。 2. 在`.pro`文件中添加`ICON = FlySightViewer.icns`。
然而,当我按照这些步骤操作时,图标仍然是默认的Qt应用程序图标。我尝试删除应用程序包和构建文件夹,因为我读到这些有时不会通过常规过程重新构建。但这似乎并没有解决问题。
深入了解后,当我从Qt Creator运行qmake时,生成的Makefile包含多个`FlySightViewer.icns`实例,包括这一行:
@$(COPY_FILE) ../flysight-viewer-qt/src/FlySightViewer.icns FlySightViewer.app/Contents/Resources/FlySightViewer.icns

文件../flysight-viewer-qt/src/FlySightViewer.icns似乎在我期望的位置。但是,当我构建项目并查看应用程序包内部时,找不到该图标。 Resources文件夹中唯一的东西是empty.lproj
因此,我认为图标未按预期出现,因为它未被复制到应用程序包中,但我不知道为什么会这样。
如果能给予任何帮助将不胜感激。我意识到这是一个相当常见的问题,但我在这里找到的所有答案似乎都没有帮助过我。
谢谢!

icns格式可以包含不同尺寸的多个图像版本。如果您在预览中打开文件,您将看到不同可用的图像。请检查尺寸是否为2的倍数(例如32x32、64x64等)。 - TheDarkKnight
尺寸看起来没问题。我有1024x1024,512x512两次,256x256两次,128x128,64x64,32x32两次和16x16。其中一些来自带有“@2x”后缀的“高分辨率”版本。 - Michael Cooper
512x512 两次和 32x32 两次;为什么有两个版本? - TheDarkKnight
我按照上面链接中的说明创建了图标文件,其中包括“高分辨率”版本。您可以在此链接中直接从苹果看到相同的建议:https://developer.apple.com/librarY/mac/documentation/GraphicsAnimation/Conceptual/HighResolutionOSX/Optimizing/Optimizing.html - Michael Cooper
这些COPY_FILE操作属于哪个目标,并且您是否正在构建该目标? - Kuba hasn't forgotten Monica
@kuba:好问题。在我看来,目标只是“:”,但我不确定这在Makefile中意味着什么。 - Michael Cooper
2个回答

2

将以下代码添加到.pro文件中:

QMAKE_INFO_PLIST = Info.plist

接着创建 .plist 文件并在其中设置图标名称。我不会粘贴一个示例的 .plist,因为它相当大,但是您可以通过右键单击任意应用程序并选择“显示包内容”来了解其操作方式。


谢谢!问题似乎在最新版本的Qt(或macdeployqt)中已经得到解决。 - Michael Cooper

0

在旧版本的Qt中,我通常手动更改图标。然而,最新版本的Qt(或macdeployqt)似乎已经解决了这个问题,所以我不再需要手动设置图标。


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