【问题标题】:QT/C++ on MAC - Application Icon doesn't setMAC 上的 QT/C++ - 应用程序图标未设置
【发布时间】:2011-06-11 23:16:40
【问题描述】:

我正在努力解决的奇怪问题。在与我的“*.pro”QT 项目文件相同的文件夹中,我有一个 Resources/myIcon.png。

我正在尝试将其设置为我构建的应用程序的图标,在 OSX 上运行。我阅读了文档,它建议在 .pro 文件中放置一个“ICON =”。我这样做了,但由于某种原因,图标 IS 复制到了我的应用程序内容内的资源文件夹中,但 .pfile 的图标字段仍然为空。即使我手动将其更改为“resources/myIcon.png”,它也不起作用。

我做错了什么?

【问题讨论】:

  • 糟糕...可怕的想法,一定是*.icns 文件吗?

标签: qt macos


【解决方案1】:

手动删除生成的 app bundle。 Run QMake 后跟 Rebuild All 是不够的!

【讨论】:

  • 老兄!那固定了我。我为此绞尽脑汁了好几个小时,你的小提示帮助了我。我所要做的就是使用this post 创建一个MyIcon.icns,将其放到项目目录中,将ICON = MyIcon.icns 添加到.pro 文件中,然后在此处按照您的建议进行操作。有效!
  • 哈,我又遇到了这个确切的问题,并试图给自己投票……可惜这仍然没有解决。
  • 我花了一整天的时间才找到这个答案。我有一些应用程序会显示图标,有些则不会。删除应用程序包,然后使用 qmake 和重建似乎可以使其正常工作。此外,我可以通过重命名应用程序包使其显示图标。即使我随后将其重命名为原始名称,它也会继续工作。我想知道问题是否与 MACOS(此处为 10.12.6)缓存图标信息而没有注意到更改有关?尝试更改目标名称,然后重建。这可以使图标恢复原状。
【解决方案2】:

不要在应用程序包中为 Info.plist 中的图标文件设置完整路径名。只需设置文件名。 Mac OS 知道在 AppName.app/Contents/Resources 中查找它。

是的,据我所知,它必须是一个 ICNS 文件。您可以使用 Mac OS 开发工具中的“Icon Composer”实用程序从 .png 创建 .icns。

【讨论】:

    【解决方案3】:

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

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

    【讨论】:

    • 两个有趣的点。首先,在主应用程序窗口中使用 this->setWindowIcon 设置图标并没有设置停靠图标,尽管它设置了窗口图标。其次,QApplication::setWindowIcon 很好(不需要'qApp()->'),并且设置了停靠图标和应用程序窗口图标,虽然停靠图标是在弹跳阶段之后设置的,所以默认图标出现很短的时间;这对于大多数用途来说是完全可以接受的。
    猜你喜欢
    • 2012-11-28
    • 2012-03-19
    • 1970-01-01
    • 2014-10-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-27
    • 1970-01-01
    相关资源
    最近更新 更多