Установить значок приложения Qt5.6 (Linux)

Я разрабатываю приложение для 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);

Однако это тоже не работает, что мне нужно делать?

[Изменить] Приложение, отображаемое на панели задач, отображает правильный значок в качестве настройки в ресурсе рядом с заголовком приложения, это просто неверный значок в файловой системе.


person SPlatten    schedule 29.06.2016    source источник


Ответы (2)


Я уверен, что это будет не то, на что вы надеялись, но вот. Официальный ответ Qt находится здесь http://qt-project.org/doc/qt-5/appicon.html

Шаг 1. Установите значок 48 x 48 в теме hicolor. Это означает копирование файла PNG в /usr/share/icons/hicolor/48x48/apps. По желанию можно установить иконки разных размеров. Например, копирование значка svg в /usr/share/icons/hicolor/scalable/apps означает, что на большинстве рабочих столов будет один значок, который подходит для всех размеров.

Рекомендуется, чтобы значки, установленные в теме hicolor, выглядели нейтрально, так как это резервная тема, которая будет использоваться в сочетании с некоторыми темами, которые выглядят совсем иначе. Но если у вас нет ни одной нейтральной иконки, то установите любую иконку, которая у вас есть в теме hicolor, чтобы все приложения получили хоть какую-то иконку во всех темах.

Шаг 2. Создайте текстовый файл .desktop в /usr/share/applications/, чтобы сообщить 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
person myk    schedule 29.06.2016
comment
Есть ли что-то, что я могу обернуть в Qt IDE, чтобы оно было автоматическим при сборке приложения? Я пробовал официальную страницу Qt перед публикацией в StackOverflow, но не добился успеха. - person SPlatten; 29.06.2016
comment
Я бы тоже хотел, чтобы это было так, но после пары дней поисков это был единственный подход, который я нашел (который также сработал) - давайте немного подождем, может быть, у кого-то есть решение. - person myk; 29.06.2016

Утилита 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 вы можете выполнить команду оболочки, чтобы связать значок.

person myk    schedule 13.03.2018