qt - 如何使 setWindowIcon 在独立的可执行文件(Qt5.14 + VS2019)中正常工作?
问题描述
我正在 MS Visual Studio Community 2019 中编写 Qt 应用程序。我正在尝试使用以下命令向我的应用程序窗口添加一个图标,并且我还有.qrc文件中提到的相应文件my_icon.ico:
setWindowIcon(QIcon(":/my_icon.ico"));
当我在 VS 中构建和运行我的程序时,一切都很完美——图标取代了标准图标。但是,当我发布并尝试运行生成的独立可执行文件时,图标未显示!这特别奇怪,因为我在.qrc文件(按钮图片)中也提到的图像在它们的位置上。
我试图将my_icon.ico放在.exe文件旁边,但没有结果。
我放弃了,请告诉我这里可能发生的事情。
解决方案
感谢chehrlic,我了解到它就像在Visual Studio 的 Release 配置构建的.exe文件上运行windeployqt.exe一样简单。
这将动态链接所有必需的库。
当.exe文件位于 Release 文件夹中时,请避免使用此工具,因为它会在.exe文件附近创建许多其他文件和文件夹。我已将my_app.exe复制到一个新目录并从中运行以下命令:
C:\Qt\5.14.1\msvc2017_64\bin\windeployqt.exe my_app.exe --release
有关更多详细信息,请参阅https://doc.qt.io/qt-5/windows-deployment.html。
推荐阅读
- c++ - 如何在 Windows 中更新 Visual Studio Code 上的 includePath?
- angular - 刷新页面时 CanDeactivateGuard 不起作用
- javascript - 如果父母被隐藏,是否可以计算可见的孩子?
- css - 为什么加粗电压符号⚡︎会显示一个装饰箭头➫(在网络上,带有系统字体)?
- sql - 按字母顺序附加列值
- python - 如何使用 googletrans 在 Python 中翻译 Pandas 系列?
- r - 使用两个数据框创建 geom_tile 图
- python - Python Pandas 从许多列表中创建唯一的数据框
- python - 在带有多处理模块的python中创建一个新的子进程时,哪些内容将从父进程复制到子进程
- reactjs - Firebase 身份验证在我的反应本机应用程序中不起作用