【问题标题】:How to set application icon in a Qt-based project?如何在基于 Qt 的项目中设置应用程序图标?
【发布时间】:2010-11-30 10:17:29
【问题描述】:

如何为使用 Qt 制作的应用程序设置应用程序图标?有什么简单的方法吗?这是一个基于 qmake 的项目。

【问题讨论】:

标签: c++ qt


【解决方案1】:

对于 Qt 5,此过程由 qmake 自动执行。只需将以下内容添加到项目文件中:

win32:RC_ICONS += your_icon.ico

自动资源文件生成还使用以下 qmake 变量的值:VERSION, QMAKE_TARGET_COMPANY, QMAKE_TARGET_DESCRIPTION, QMAKE_TARGET_COPYRIGHT, QMAKE_TARGET_PRODUCT, RC_LANG, RC_CODEPAGE

对于Qt 4,您需要手动完成。在 Windows 上,您需要创建一个 .rc 文件并将其添加到您的项目 (.pro)。 RC 文件应如下所示:

IDI_ICON1 ICON DISCARDABLE "path_to_you_icon.ico"

.pro 条目也应该是特定于 win32 的,例如:

win32:RC_FILE += MyApplication.rc

【讨论】:

  • 为了安全起见,您应该使用win32:RC_FILE += MyApplication.rc
  • 统一怎么做?标准文档不足,在我的 ubuntu 12.04 中找不到任何 gnome-config。
  • 为什么没有跨平台解决方案。我希望在 debian 可执行文件(还有 mac?)上也显示相同的图标。
  • @dwj 你说的“安全”是什么意思?
  • 如何在 Linux Mint 上做到这一点?
【解决方案2】:

现在 Qt 已经升级到 5.0.1,有新方法可以添加应用程序图标。首先,你需要准备一个资源文件,命名为.qrc

1) 如果没有Qt Designer,我假设有一个名为MainWinQMainWindow 实例。您可以使用:

QIcon icon(":icon/app.icon"); 
MainWin.setWindowIcon(icon);

2) 使用Qt Designer,可以修改QMainWindow 的属性。从.qrc中选择图标资源,插入windowIcon所在行。

以上方法在Qt4.7、Qt4.8.x中都可以使用。

【讨论】:

  • 你错了。您的方法是设置表单的图标。不是应用程序图标。
  • 这不能回答 OP 的问题
【解决方案3】:

已在 Linux (Qt 4.8.6) 和 Windows (Qt 5.6) 中验证:

1) 将图标文件添加到您的项目文件夹中;

2) 在主函数中调用 setWindowIcon() 方法。例如:

QApplication a(argc, argv);
a.setWindowIcon(QIcon("./images/icon.png"));

【讨论】:

  • 这是窗口打开时的图标(例如,标题栏上的图标)。例如,OP 希望在您使用文件管理器时看到图标,然后用鼠标单击以打开程序。
【解决方案4】:

要扩展 Rob 的答案,您可以通过在 .pro 文件中添加和修改以下行来为 macOS 设置应用程序图标。

macx: ICON = <app_icon>.icns

请注意,ICON qmake variable 仅适用于 macOS。

对于 Windows,请使用

  • RC_ICONS = &lt;app_icon&gt;.ico 如果您要附加 .ico 文件
  • RC_FILE = &lt;app_icon&gt;.rc,如果您想通过.rc 文件附加您的图标。 (请务必在 rc 文件中添加IDI_ICON1 ICON DISCARDABLE "myappico.ico"。缩进不是我的。)

如需进一步阅读,请参阅Setting the Application Icon

【讨论】:

    【解决方案5】:

    对于 Windows 上的 Qt5,将您的 ico 文件移动到项目文件夹并将这一行添加到您的 .pro 文件中:

    RC_ICONS = myappico.ico
    

    官方链接:https://doc.qt.io/qt-5/appicon.html

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-04-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-08
      相关资源
      最近更新 更多