【问题标题】:Qt5.6 set application icon (Linux)Qt5.6设置应用程序图标(Linux)
【发布时间】:2016-11-01 03:39:32
【问题描述】:

我正在使用 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);

但是这也不起作用,我需要做什么?

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

【问题讨论】:

    标签: c++ icons qt5.6


    【解决方案1】:

    我敢肯定这不会是您所希望的,但就是这样。官方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 菜单找到您的应用程序,但是在浏览 nautilus/files 时,可执行文件仍然不会使用您的图标显示。

    /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
    

    【讨论】:

    • 难道我不能在 Qt IDE 中封装一些东西,以便在构建应用程序时自动执行吗?我在 StackOverflow 上发帖之前尝试过官方 Qt 页面,但没有成功。
    • 我也希望是这样,但经过几天的搜索,这是我发现的唯一方法(也恰好有效) - 让我们等一下,也许是其他人有解决办法。
    【解决方案2】:

    实用程序 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 命令来关联图标。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-07-18
      • 2019-01-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-22
      • 2010-10-16
      相关资源
      最近更新 更多