Кроссплатформенное приложение на Qt: Иконка

в 8:11, , рубрики: qt, Qt Software, Блог компании iStodo team, иконки, кроссплатформенная разработка, метки: , ,

Кроссплатформенное приложение на Qt: Иконка
После сотен отладочных запусков стандартная иконка наверняка успела надоесть, потому и начнем с установки новой. По этому поводу написана отдельная статься в документации, однако все оказалось немного сложнее. Каждой платформе потребовался свой подход, одной строкой проблему не решить.

Для начала следует подготовить исходники в разных разрешениях (Windows, OS X, Linux), которые мы будем запекать в файл иконки. Необходимо добавить, что разрешения для OS X в таблице ниже условны, и в идеале иконки одинакового размера должны быть разной степени детализации, для обычных и Retina-дисплеев.

16 32 48 64 128 256 512 1024
OS X* * * * * * * *
Linux * * * * *
Windows * * * *

Windows

Для Windows в документации рекомендуется использовать редактор иконок из Visual Studio, однако я так и не смог его найти в express версии 2010 года. Вместо этого можно использовать специализированную утилиту, или Gimp. Во втором случае, просто добавляем на холст исходники (как слои, в порядке убывания размеров), экспортируем в формат .ico.
Далее нужно создать пустой текстовый файл с расширением .rc, записать в него строку вида:

IDI_ICON1 ICON DISCARDABLE "myapp.ico"

В .pro файле добавить строку:

win32:RC_FILE = myapp.rc

Bing!

OS X

Меньше всего возни оказалось с OS X, для которой, кроме стандартной консольной* утилиты, есть удобные инструменты с «интуитивно понятным интерфейсом». Перетаскиваем нужные исходники на свои места, сохраняем готовую иконку.

Кроссплатформенное приложение на Qt: Иконка

В .pro файле необходимо дописать строку:

macx:ICON = $${PWD}/myapp.icns

Fix: Если иконка все еще не появилась, стоит снести бандл руками (простая пересборка может не сработать).

Linux

Согласно спецификации, Linux не требует преобразовывать исходники иконки в какие-либо сборки, нужно просто скопировать (при установке) файлы в поддиректории вида:

/usr/share/icons/hicolor/RxR/apps, где R — разрешение иконки

Однако это еще не все, каждая тема иконок имеет свой кэш, и если его не обновить — увидеть новую иконку не получится. Кэш автоматически обновляется при штатной установке пакетов, либо можно сделать это вручную, выполнив команду:

gtk-update-icon-cache /usr/share/icons/hicolor

Нужно сказать, что связывание конкретной иконки с приложением идет в файле /usr/share/applications/myapp.desktop, в котором необходимо заполнить соответствующее поле (название иконки). Создание и заполнение обязательных полей этого файла будет рассмотрено в одной из следующих статей, посвященной сборке и распространению дистрибутива программы.

Оглавление цикла

Автор: Zifix

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js