Qt5.6设置应用程序图标(Linux)

Qt5.6 set application icon (Linux)

本文关键字:Linux 图标 应用程序 设置 Qt5      更新时间:2023-10-16

我正在为RedHat 7.2开发一个Qt5.6应用程序。

我的资源文件"qrc":

    <RCC>
        <qresource prefix="/">
            <file alias="APP_ICON">lw-3.png</file>
        </qresource>
    </RCC>

我想设置应用程序,将此资源用作应用程序图标。使用编辑器,我编辑了主窗口,并通过从资源文件中选择属性"windowIcon"将其设置为APP_ICON。

我已经运行了qmake并构建了应用程序,但图标仍然是默认的Qt图标。

我已经尝试将此代码添加到主窗口构造函数中:

    QIcon objIcon = QIcon(":/APP_ICON");
    setWindowIcon(objIcon);

然而,这也不起作用,我需要做什么?

[编辑]任务栏中显示的应用程序在资源中显示的图标与应用程序标题一样正确,只是文件系统中的图标不正确。

我相信这不会是你所希望的,但现在开始。官方Qt答案在这里http://qt-project.org/doc/qt-5/appicon.html

步骤1 :在hicolor主题中安装一个48x48图标。这意味着将PNG文件复制到/usr/share/icons/hicolor/48x48/apps。您可以选择安装不同大小的图标。例如,在/usr/share/icons/hicolor/scalable/apps中复制svg图标意味着大多数桌面都有一个适用于所有大小的图标。

建议安装在hicolor主题中的图标看起来中性,因为这是一个后备主题,将与一些看起来非常不同的主题结合使用。但是,如果你没有任何中性图标,那么在hicolor主题中安装任何图标,这样所有应用程序都可以在所有主题中至少获得一些图标。

第2步: 在/usr/share/applications/中创建一个text.desktop文件,告诉gnome您的应用程序。这将允许您的应用程序通过带有适当图标的gnome菜单找到,但当在nautilus/文件中浏览时,可执行文件仍然不会使用您的图标显示。

/usr/share/applications/myapp.desktop文件应该包含以下内容:

[Desktop Entry]
Encoding=UTF-8
Type=Application
Name=MyAppName
Comment=My very special application description
Exec=/use/bin/myapp
Icon=/usr/share/icons/hicolor/scalable/apps/myapp.svg
Terminal=false
Categories=GNOME;Application;
StartupNotify=true

实用工具gio可用于将元数据与包含自定义图标文件的文件相关联。将自定义图标与文件关联可确保当文件显示在Nautilus(文件(中时,使用其关联图标进行显示。

查看文件使用的元数据:

gio info /path/to/file/file-name

要将自定义图标与文件关联,请使用:

gio set /path/to/file/file-name metadata::custom-icon "file:///path/to/file/icon-file-name"

可能作为linux/ggnome安装的一部分,您可以执行一个shell命令来关联图标。