Qt
- Qt 5.12.10
- MSVC 2017
QT 在 windows 平台不提供 64 位安装包, 但可以安装 32 位的 qt 和 64 位的编译组件用于编译出 64 位的程序.
qt 镜像站
国内 Qt 镜像网站
中国科学技术大学:http://mirrors.ustc.edu.cn/qtproject/
清华大学:https://mirrors.tuna.tsinghua.edu.cn/qt/
北京理工大学:http://mirror.bit.edu.cn/qtproject/
中国互联网络信息中心:https://mirrors.cnnic.cn/qt/
安装
首先到 镜像站 下载 qt 安装包, 选择合适的版本(例如 5.12.10), 点击下载qt-opensource-windows-x86-5.12.10.exe.
安装时要注册账号, 安装组件建议勾选:
1 | - Qt 5.12.10 |
QT+VS
安装完成后到 VS2017
中点击 工具
-> 扩展和更新
. 搜索Qt Visual Studio Tools
下载安装, 重启 VS2017
, 然后 VS 上方菜单栏多出一个Qt VS Tools
.
点击 Qt VS Tools
->Qt Versions
-><add new Qt version>
, 设置Path
时选择 (QT 安装路径)\5.12.10\msvc2017_64\bin\qmake.exe
文件即可.
在 VS 中新建项目时就可以选择 qt
->Qt Wigdgets Application
.
新建的工程下默认出现如下文件
1 | - Form Files |
控制台 or 窗口
在使用 VS 生成 Qt 应用程序时, 如果希望运行程序时不弹出控制台窗口, 可以按如下方式设置子系统类型:
属性
->配置属性
->链接器
->系统
->子系统: 控制台 (/SUBSYSTEM:CONSOLE)
改为:属性
->配置属性
->链接器
->系统
->子系统: 窗口 (/SUBSYSTEM:WINDOWS)
如果使用 CMake 配置工程, 只需在 add_executable
中加上 WIN32
参数即可.
1 | add_executable(${TARGET_NAME} WIN32 |
添加图标
从在线图标库 (例如 https://www.iconfont.cn/) 下载
.icon
格式图标文件;如果无法下载
.icon
格式, 可以先下载其他格式, 然后通过在线网站 (https://cloudconvert.com/eps-to-ico) 进行格式转换, 得到logo.ico
文件;准备 rc 文件: 用记事本编辑以下内容保存为
logo.rc
文件logo.rc 1
IDI_ICON1 ICON DISCARDABLE "logo.ico"
在
CMakeLists.txt
文件中将logo.rc
文件加入到源文件列表中CMakeLists.txt 1
2
3
4
5
6list(APPEND SOURCES ${SOURCES_DIR}/logo.rc)
add_executable(${TARGET_NAME}
...
${SOURCES}
)将准备好的
logo.ico
文件放到与 rc 文件的同级目录编译运行, 即可生成带图标的
*.exe
可执行文件.
- cmake 工程通过 rc 文件给程序添加图标 - CSDN
- https://blog.csdn.net/bzhxuexi/article/details/11812607
- https://blog.csdn.net/mhw828/article/details/104190066
踩坑
若直接编译运行可能报错,VS 无法搜索到 qt 相关头文件, 在工程属性下查看 C/C++ 的附加包含目录发现继承了
$(Qt_INCLUDEPATH_)
, 然而实际上搜索不到. 因此可以再新建一个包含目录, 将这个宏再添加一次即可.如果直接在 VS 中双击
Form Files/xxx.ui
文件, 本应该跳转到Qt Designer
打开该文件, 实际上可能出现闪退. 因此需要在 VS 中右键该文件, 选择打开方式, 其中有一个默认的Qt Designer
. 该值可能无效, 点击添加, 程序选择(QT 安装路径)\5.12.10\msvc2017_64\bin\designer.exe
, 并设置为默认值即可.编译运行时报错:
1
This application failed to start because it could not find or load the Qt platform plugin "windows" in "".
可能是相关 dll 库文件没有加载成功, 将
Qt5Core.dll
,Qt5Gui.dll
,Qt5Widgets.dll
复制到生成的可执行文件所在路径 或者将 dll 所在路径添加到系统环境变量然后重启系统即可.
点击这个错误可以定位到出问题的代码, 将文件 #1348-1356# 行改为如下:
1 |
发布
查找依赖的 dll 文件
VS+Qt 项目要在其他电脑上运行需要相关 dll 库文件, 其中 qt 相关库可以用 qt 自带的命令windeployqt [*].exe
补全 (注意这里需要在 Qt 自带的Qt 5.12.10(MSVC 2017 64-bit)
里运行,而不能在 cmd
或powershell
里运行),而其他运行库可以用 VS 自带的 dumpbin
命令检索到:dumpbin /IMPORTS [*]exe > output.txt
,然后再找到相关文件复制到 exe 所在路径.
使用 Enigma 工具进行打包
- 程序打包问题 - nightn/CloudViewer-issues
- Enigma Virtual Box 封包工具介绍 - CSDN
- Enigma Virtual Box Downloads
- Enigma 文件打包工具 下载