Установить значок .exe для приложения Qt windows без qmake / VS - PullRequest
1 голос
/ 03 октября 2019

Каковы действия по добавлению значка приложения Qt в окна, которые отображаются в exe-файле в проводнике?

В настоящее время мои значки отображаются в окнах графического интерфейса приложения, но не в самом файле exe впроводник.

Ответ на вопрос Как установить значок приложения в проекте на основе Qt? показывает, как это сделать с помощью qmake, добавив RC_ICONS Я не использую qmake. Я не использую VS, я использую VS компилятор и любые инструменты напрямую, в стандартном приложении C ++ с Qt.

Можно ли найти шаги, чтобы сделать это вручную? Qt относится к winres.exe, но есть ли способ использовать инструменты Qt напрямую или любые инструменты, которые поставляются с VS?

Я добавляю значки вручную, компилируя их, я проектирую графический интерфейс в Qt Designer, затем компилируючерез простой пакетный файл в Windows 10. dtresources.qrc создается в Qt Designer. Значки окна графического интерфейса затем выбираются из файла ресурсов.

Пример:

%qtdir%\bin\rcc -name icons dtresources.qrc -o detail/dtresources.cpp
set src=detail/dtresources.cpp *.cpp

cl /EHsc /MDd /Zi /nologo /Fa"x64/debug/" /Fd"x64/debug/vc120.pdb" /Fo"x64/debug/" /Fp"x64/debug
/%appname%.pch"  /I"%qtdir%/include" /I"%qtdir%/include/QtCore" /I"%qtdir%/include/QtGui"
 /I"%qtdir%/include/QtWidgets" "%qtdir%/lib/Qt5Guid.lib" "%qtdir%/lib/Qt5Widgetsd.lib"
 "%qtdir%/lib/Qt5Cored.lib" %src% /link /out:"x64/debug/%appname%.exe"

пример .qrc:

<RCC>
  <qresource prefix="res">
    <file>res/app.ico</file>
  </qresource>
</RCC>

1 Ответ

4 голосов
/ 03 октября 2019

Да, вы можете. Вместо windres.exe Windows SDK предоставляет rc.exe, он же Resource Compiler. Сначала вам нужно изображение в формате .ico (называемое здесь «app.ico») и текстовый файл с именем «app.rc» со следующим содержимым:

IDI_ICON1               ICON    DISCARDABLE     "app.ico"

Вы можете скомпилировать этот файл с помощью этой команды:

rc app.rc

Эта команда создаст файл с именем "app.res". Этот файл RES может быть обработан компоновщиком напрямую, или вы можете преобразовать его в .obj с помощью этой команды:

cvtres /MACHINE:X64 app.res

Эта команда создает файл с именем "app.obj" (для архитектуры x86_64,используйте cvtres /h, чтобы увидеть другие параметры). Вы должны передать этот файл .obj компоновщику при создании исполняемого файла. «cvtres.exe» происходит из каталога bin компилятора VC, а не из Windows SDK.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...