После сотен отладочных запусков стандартная иконка наверняка успела надоесть, потому и начнем с установки новой. По этому поводу написана отдельная статься в документации, однако все оказалось немного сложнее. Каждой платформе потребовался свой подход, одной строкой проблему не решить.
Для начала следует подготовить исходники в разных разрешениях (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, для которой, кроме стандартной консольной* утилиты, есть удобные инструменты с «интуитивно понятным интерфейсом». Перетаскиваем нужные исходники на свои места, сохраняем готовую иконку.
В .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