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

时间:2016-06-29 12:23:39

标签: c++ icons qt5.6

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

我的资源档案'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);

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

[编辑]任务栏中显示的应用程序会在应用程序标题旁边的资源中显示正确的图标设置,它只是文件系统中不正确的图标。

2 个答案:

答案 0 :(得分:2)

我确信它不会是你所希望的,但是这里有。官方的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 /中创建一个文本.desktop文件,告诉gnome您的应用程序。这将允许您通过gnome菜单找到您的应用程序,并使用适当的图标BUT浏览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

答案 1 :(得分:0)

实用程序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 / gnome安装的一部分,您可以执行shell命令来关联图标。