Структура проекта:
resources.qrc
<RCC> <qresource> <file>icon.png</file> </qresource> </RCC>
CMakeLists.txt
... qt_add_resources(RESOURCES ${CMAKE_SOURCE_DIR}/res/resources.qrc) ... add_executable(app_binary ${SOURCE_EXE} ${RESOURCES})
main.cpp
int main(int argc, char** argv){ ... QAppWindow appWindow; QIcon appIcon(":/icon.png"); ... appWindow.setWindowIcon(appIcon); ... }
1. Подготовка *.ico файла
Установка утилиты сonvert из пакета ImageMagick через MSYS2:
pacman -S mingw-w64-ucrt-x86_64-imagemagick
2. Создание icon.ico файла из icon.png:
$ convert icon.png -define icon:auto-resize=16,32,48,64,128,256 icon.ico # The convert command is deprecated in IMv7, use "magick" instead of "convert"
3. Создание rc-файла иконки, res/icon.rc:
IDI_ICON1 ICON DISCARDABLE "icon.ico"
4. CMakeLists.txt:
... if(WIN32) set(APP_ICON_RESOURCE_WINDOWS "${CMAKE_SOURCE_DIR}/res/icon.rc") endif() ... add_executable(app_binary ${SOURCE_EXE} ${APP_ICON_RESOURCE_WINDOWS})