c++ - 在没有 qmake/VS 的情况下为 Qt Windows 应用程序设置 .exe 图标

标签 c++ windows qt qt5

在资源管理器中的 exe 文件上显示的窗口上添加 Qt 应用程序图标的步骤是什么?

目前我的图标显示在应用程序 GUI 窗口上,但不显示在资源管理器中的 exe 文件本身上。

How to set application icon in a Qt-based project? 的答案通过添加 RC_ICONS 显示如何通过 qmake 完成此操作 我不使用 qmake。我不使用 VS,我直接在带有 Qt 的标准 C++ 应用程序中使用 VS 编译器和任何工具。

是否可以找到手动完成的步骤? Qt 指的是 winres.exe 但有没有办法直接使用 Qt 工具,或者 VS 自带的任何工具?

我通过编译手动添加图标,我在 Qt Designer 中设计 GUI,然后在 Windows 10 上通过简单的批处理文件进行编译。dtresources.qrc 是在 Qt Designer 中创建的。然后从资源文件中选择 GUI 窗口图标。

例子:

%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>

最佳答案

是的,你可以。 Windows SDK 提供了 rc.exe,也就是资源编译器,而不是 windres.exe。您首先需要一个 .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”来自 VC 编译器 bin 目录,而不是 Windows SDK。

关于c++ - 在没有 qmake/VS 的情况下为 Qt Windows 应用程序设置 .exe 图标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58211713/

相关文章:

c++ - Qt:移动到线程

windows - 进程中的线程数是什么意思(wmic)

windows - 检查与服务器应用程序的连接

未在范围内声明的 C++ 转换仅发生在服务器上

c++ - 如何在 64 位 Qt 应用程序中使用 32 位汇编函数?

c++ - 将 std::__cxx11::string 转换为 std::string

windows - 当您最小化应用程序时,Windows 会做些什么吗?

c++ - 如何从 QTreeView 返回节点名称

qt - 使用 Qt4 捕获多屏幕桌面图像

python - Windows 和 Linux 之间 QT 的形式差异