设置应用程序图标
应用程序图标通常显示在应用程序顶级窗口的左上角,可通过调用QWindow::setIcon()方法进行设置。
若要更改可执行应用程序文件本身的图标(即在桌面上显示的图标,也就是在应用程序启动之前),则需要采用另一种与平台相关的技术。
在 Windows 上设置应用程序图标
首先,创建一个包含图标图像的 ICO 格式位图文件。这可以通过 Microsoft Visual Studio 完成:选择“File >> New ”,然后选择“Icon File ”。
注意: 由于您仅使用图标编辑器,因此无需将 应用程序加载到 Visual Studio IDE 中。
此外,还可以使用 ImageMagick 的convert工具,根据一组图像创建.ico 文件:
magick.exe convert icon-16.png icon-32.png icon-256.png icon.ico将 ICO 文件存储在应用程序的源代码目录中,例如命名为appico.ico 。
在 Windows 上使用 CMake
要配置应用程序的图标,需要一个包含图标信息的资源文件。资源文件是一个文本文件,其中包含有关应用程序资源(如图标、光标、字体等)的信息。有关资源文件及其可包含内容的更多信息,请参阅《关于资源文件》。
创建.rc 文件后,向其中添加 ICO 文件的相关信息,并使用该文件配置应用程序图标。
以下代码片段演示了“PhotoSurface”示例应用程序如何使用 CMake 设置应用程序图标:
set(app_icon_resource_windows "${CMAKE_CURRENT_SOURCE_DIR}/resources/photosurface.rc")
qt_add_executable(photosurfaceexample main.cpp ${app_icon_resource_windows})请注意,set 命令定义了app_icon_windows 变量,该变量包含RC文件的路径。该变量与add_executable 命令配合使用,用于设置应用程序的图标。
在 Windows 上使用 qmake
如果您仍在使用 qmake 生成 makefile,则需要在.pro 项目文件中添加以下一行:
RC_ICONS = myappico.ico最后,重新生成你的 makefile 和应用程序。现在,在资源管理器中,.exe 文件将显示为你的图标。
但是,如果你已经有一个.rc 文件(例如,文件名为myapp.rc ),并且希望继续使用它,则需要执行以下两个步骤。首先,在myapp.rc 文件中添加一行文本:
IDI_ICON1 ICON "myappico.ico"然后,将以下这一行添加到您的myapp.pro 文件中:
RC_FILE = myapp.rc如果您不使用qmake ,则需要执行以下步骤:首先,创建一个.rc 文件,并使用rc 或windres 程序处理.rc 文件,然后将您的应用程序与生成的.res 文件链接。
在 macOS 上设置应用程序图标
应用程序图标通常显示在应用程序 Dock 区域中,可通过在窗口上调用QWindow::setIcon() 来设置。程序可能在调用该函数之前就已出现在应用程序 Dock 区域中,这种情况下,在弹跳动画期间将显示默认图标。
为了确保在应用程序启动时以及在 Finder 中都能显示正确的图标,必须采用一种与平台相关的技术。
尽管许多程序都能创建图标文件(.icns ),但推荐的做法是使用 Apple 提供的iconutil程序。iconutil是一个命令行工具,可将图标集文件夹转换为可直接部署的高分辨率 icns 文件。使用该工具还会对生成的 icns 文件进行压缩,因此您无需进行额外的压缩操作。
在 macOS 上使用 CMake
要配置应用程序的图标,CMake 生成的Info.plist 文件必须包含图标信息。这可以通过将.icns 文件名设置为MACOSX_BUNDLE_ICON_FILE 变量来实现。
以下代码片段演示了Photo Surface示例应用程序如何使用 CMake 设置应用程序图标:
# The MACOSX_BUNDLE_ICON_FILE variable is added to the Info.plist
# generated by CMake. This variable contains the .icns file name,
# without the path.
set(MACOSX_BUNDLE_ICON_FILE photosurface.icns)
# And the following tells CMake where to find and install the file itself.
set(app_icon_macos "${CMAKE_CURRENT_SOURCE_DIR}/resources/photosurface.icns")
set_source_files_properties(${app_icon_macos} PROPERTIES
MACOSX_PACKAGE_LOCATION "Resources")
qt_add_executable(photosurfaceexample MACOSX_BUNDLE main.cpp ${app_icon_macos})请注意,第一个set 命令定义了MACOSX_BUNDLE_ICON_FILE 变量,该变量是将图标文件添加到Info.plist 文件中所必需的。第二个set 命令定义了app_icon_macos 变量,其中包含图标文件的绝对路径。随后,该变量被用于配置 MACOSX_PACKAGE_LOCATION,该变量定义了图标文件的安装位置。 最后,add_executable 使用app_icon_macOS 变量来设置应用程序的图标。
在 macOS 上使用 qmake
如果您仍在使用 qmake 生成 makefile,只需在.pro 项目文件中添加一行代码即可。例如,如果您的图标文件名为myapp.icns ,项目文件名为myapp.pro ,请在myapp.pro 中添加以下内容:
ICON = myapp.icns这样可以确保qmake 将图标放置在正确的位置,并为该图标创建一个Info.plist 条目。
如果您不使用qmake ,则必须手动执行以下操作:
- 为您的应用程序创建一个
Info.plist文件(使用Developer/Applications中提供的PropertyListEditor模板)。 - 将您的
.icns记录与Info.plist文件中的CFBundleIconFile记录关联起来(同样使用PropertyListEditor工具)。 - 将
Info.plist文件复制到应用程序包的Contents目录中。 - 将
.icns文件复制到应用程序包的Contents/Resources目录中。
在常见的 Linux 桌面环境中设置应用程序图标
本节简要介绍了为两种常见的 Linux 桌面环境(KDE和GNOME)提供应用程序图标时涉及的问题。描述应用程序图标的核心技术在这两种桌面环境中是相同的,也可能适用于其他桌面环境,但每种环境都有其特有的细节。 关于这些 Linux 桌面环境所采用标准的主要信息来源是freedesktop.org。有关其他 Linux 桌面环境的信息,请参阅您感兴趣的桌面环境的文档。
通常,用户不会直接使用可执行文件,而是通过点击桌面上的图标来启动应用程序。这些图标是“桌面条目文件”的体现,其中包含应用程序的描述信息,包括其图标的相关信息。 这两种桌面环境均能获取这些文件中的信息,并利用这些信息在桌面、开始菜单和面板上生成应用程序的快捷方式。
有关桌面条目文件的更多信息,请参阅《桌面条目规范》。
尽管桌面条目文件能有效封装应用程序的详细信息,但我们仍需将图标存储在各桌面环境的常规位置。《图标主题规范》中列出了若干图标存储位置。
虽然用于定位图标的路径取决于所使用的桌面环境及其配置,但每个桌面环境下的目录结构应遵循相同的模式:子目录按主题、图标大小和应用程序类型进行排列。 通常,应用程序图标会被添加到 hicolor 主题中,因此一个 32 像素的方形应用程序图标将存储在图标路径下的hicolor/32x32/apps 目录中。
K 桌面环境 (KDE)
应用程序图标可以安装为所有用户共用,也可以按用户单独安装。当前登录到 KDE 4 桌面的用户可以使用 kde4-config 查找这些位置,例如在终端窗口中输入以下命令:
kde4-config --path icon使用 Qt 5 和 KDE Frameworks 5 的应用程序,其图标会出现在该命令返回的列表中:
qtpaths --locate-dirs GenericDataLocation icons通常,输出到标准输出(stdout)的以冒号分隔的路径列表中包含用户专属图标路径和系统级路径。在这些目录下,应能够根据《图标主题规范》中描述的约定查找并安装图标。
如果您专门针对 KDE 进行开发,建议利用KDE 构建系统来配置您的应用程序。这可确保您的图标安装在 KDE 所需的正确位置。
KDE 开发者网站位于https://techbase.kde.org/。
GNOME
应用程序图标存储在包含架构无关文件的系统级标准目录中。可通过gnome-config 确定该位置,例如在终端窗口中输入以下命令:
gnome-config --datadir标准输出(stdout)中显示的路径指向一个应包含名为pixmaps 的目录的位置;pixmaps 目录内的目录结构在《图标主题规范》中进行了描述。
如果您专门为 GNOME 进行开发,建议使用标准的 GNU 构建工具集。有关详细信息,请参阅“集成指南”部分。这可确保您的图标安装在 GNOME 的正确位置。
GNOME 开发者网站https://developer.gnome.org/ 提供了更多关于应用程序开发的深入信息。
© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.