【AI时代速通QT】第七节:Visual Studio+Qt 开发指南 - 详解
目录
前言
一、Part 1: 创建你的第一个 VS Qt 项目
二、Part 2: 核心解密:VS项目属性深度配置
2.1 通用设置 (General)
2.2 调试设置 (Debugging)
2.3 调试利器:开启控制台窗口
2.4 添加第三方库
三、Part 3: 管理Qt版本和模块
结语
攻城狮7号:个人主页
个人专栏:C++QT跨平台界面编程
⛺️ 君子慎独!
大家好,欢迎来访我的博客!
⛳️ 此篇文章主要介绍 Visual Studio+Qt 开发指南
本期文章收录在《C++QT跨平台界面编程》,大家有兴趣可以自行查看!
⛺️ 欢迎各位 ✔️ 点赞 收藏 ⭐留言 !
前言
对于许多Windows平台的C++开发者来说,Visual Studio无疑是最强大、最熟悉的IDE。而Qt作为一个成熟的跨平台C++图形界面库,其强大的功能和优雅的设计也备受青睐。当这两者结合,我们便能借助VS强大的调试工具和代码编辑体验来高效地制作Qt应用程序。
然而,从Qt Creator转向Visual Studio的开发者,或者初次尝试VS+Qt组合的新手,常常会因为项目配置疑问而“踩坑”,例如程序无法启动、找不到DLL、资源材料加载失败等。这些障碍大多源于对VS项目配置系统的不熟悉。
要弄清楚“为什么要这么做”,让你彻底告别配置的烦恼,专注于代码本身。就是本篇文章将以一个容易项目为例,手把手地带你走过从创建工程到完成所有关键配置的全过程。我们的目标不仅仅是“怎么做”,更
准备工作:在开始之前,请确保你已经在Visual Studio中成功安装了Qt VS Tools扩展插件。这是连接VS和Qt的桥梁,一切工作都将围绕它展开。(还不知道怎么安装就参考本专栏的第一节末尾部分,或者自行搜索或问AI)
一、Part 1: 创建你的第一个 VS Qt 项目
让我们从“无”到“有”,创建一个基础的Qt窗口应用程序。下面以vs2015为例,其他版本区别不大。
(1)新建项目:打开Visual Studio,选择 `资料` -> `新建` -> `项目`。在弹出的窗口中,找到 `Visual C++` -> `Qt` 分类,并选择 `Qt GUI Application`。
(2)设置路径:为你的项目命名(例如:`vsqt`),并选择一个合适的存放位置。这里有一个小技巧,建议取消勾选“为解决方案创建目录”。这样做可以让你的 `.sln` 和 `.vcxproj` 文档与项目文件夹在同一层级,使目录结构更扁平、更清晰。
(3)Qt向导:点击“确定”后,会进入Qt VS Tools的配置向导。
* 第一个界面直接点击“下一步”。
* 第二个界面让你选择项目类型和得包含的Qt模块。对于初学者,保持默认的 `Qt Widgets Application` 即可,`QtCore` 和 `QtGui` 模块也会被自动勾选。
* 第三个界面是关键。在这里,我们允许设置主窗口的基类。默认是 `QMainWindow`,但对于简单的对话框或窗口,我们许可选择更轻量的 `QWidget`。在“类名”处输入一个符合大驼峰命名法(PascalCase)的名称,如 `vsqt`。同时,建议勾选下方的“所有文件名小写”,这有助于在不同操作系统(特别是大小写敏感的Linux)之间移植代码时避免不必要的问题。
(4)完成创建:点击“完成”,VS会自动生成所有必要的记录。
此时,在你的解决方案资源管理器中,可以看到如下的项目结构:
* `vsqt.h` / `vsqt.cpp`:主窗口类的头文件和源文件。
* `main.cpp`:含有 `main` 函数的代码入口文件。
* `vsqt.ui`:使用Qt Designer设计的UI界面文件。
* `vsqt.qrc`:Qt资源文件,用于管理图片、翻译记录等。
* Generated Files:通过这是一个非常重要的虚拟文件夹。Qt的 `moc`(元对象编译器)、`uic`(用户界面编译器)和 `rcc`(资源编译器)在编译期间生成的中间文件都会在这里显示。这使得在VS中能够直观地看到所有参与编译的文件,与Qt Creator将它们隐藏起来的做法不同。
现在,你允许直接按 `F5` 运行应用,一个空白的窗口应该会顺利弹出。第一步已经成功迈出!
二、Part 2: 核心解密:VS项目属性深度配置
能运行只是开始,一个健壮的项目配置才是高效开发的保障。右键点击解决方案资源管理器中的项目名称(`vsqt`),选择“属性”,让我们来深入探索其中最重要的几个设置。
2.1 通用设置 (General)
路径: `配置属性 -> 常规`
这是我们首先要关注的地方。
(1)输出目录 (Output Directory):
* 作用:决定生成的 `.exe` 文档最终存放在哪里。
* 建议:默认值通常是在项目目录下的 `$(Platform)\$(Configuration)\`,这会导致输出档案散落在各处。一个更好的实践是将其统一输出到一个公共的 `bin` 目录,例如 `$(SolutionDir)bin\$(Platform)\$(Configuration)\`。这里的 `$(SolutionDir)` 是一个宏,代表解决方案文件 `.sln` 所在的目录。这样设置后,无论是32位/64位还是Debug/Release版本,所有的可执行文件都会被清晰地组织在解决方案目录下的 `bin` 文件夹中。
* 好处:集中管理输出,便于后期打包发布,也为下一步设置工作目录打下基础。
(2)平台工具集 (Platform Toolset):
* 作用:指定用于编译项目的编译器和库。
* 注意:该值必须与你安装的Qt版本所匹配。例如,假如你下载的Qt是为 `msvc2015_64` 编译的,那么这里就应该选择 `Visual Studio 2015 (v140)`。版本不匹配是导致链接错误的常见原因之一。
2.2 调试设置 (Debugging)
路径: `设置属性 -> 调试`
这是整个配备过程中最关键、也最容易被忽略的一步。
(1)工作目录 (Working Directory):
* 作用:定义了程序启动时所在的当前目录(Current Working Directory)。程序在查找动态链接库(DLLs)、加载相对路径的资源文件(如图片、配置文件)时,会最初从这个目录开始寻找。
* 致命错误:VS的默认值是 `$(ProjectDir)`,也就是 `.vcxproj` 文件所在的目录。而我们的 `.exe` 文件根据上一步的设置,已经输出到了 `bin` 目录。这就导致了,当你按F5启动调试时,软件在任务目录里启动,但它依赖的Qt DLLs(如 `Qt5Widgetsd.dll`)和它自己都在远处的 `bin` 目录里,自然会因为找不到依赖而启动失败!
* 正确设置:必须将工作目录设置为与“输出目录”一致!直接将 `$(SolutionDir)bin\$(Platform)\$(Configuration)\` 复制过来即可。这样就保证了软件在哪里,就从哪里启动,所有依赖和资源都能被正确找到。
2.3 调试利器:开启控制台窗口
路径: `配置属性 -> 链接器 -> 系统`
Qt脚本默认是窗口程序,你看不到 `printf` 或者 `qDebug()` 的输出。但在开发阶段,这些调试信息至关重要。
(1)子系统 (SubSystem):
* 作用:告诉操作系统你的代码是哪种类型。`窗口 (/SUBSYSTEM:WINDOWS)` 类型没有控制台,而 `控制台 (/SUBSYSTEM:CONSOLE)` 类型则会带一个黑色的命令行窗口。
* 工作原理:Qt在背后为我们做了处理。当你选择 `窗口` 子系统时,Qt的库会自动生成一个 `WinMain` 函数,并在这个函数内部调用我们写的 `main` 函数。就是你可能会疑惑,控制台程序的入口是 `main`,窗口应用的入口是 `WinMain`,而我们的Qt代码里只有一个 `main` 函数,它是怎么做到兼容的?其实
* 开发建议:在 Debug 配备下,强烈建议将此项设置为`控制台 (/SUBSYSTEM:CONSOLE)`。这样,当你运行程序时,会自动弹出一个控制台窗口。所有 `qDebug()` 的输出,包括信号槽连接失败的警告,都会清晰地打印出来,是调试的绝佳帮手。
* 发布注意:在最终的 Release 设置中,记得将它改回`窗口 (/SUBSYSTEM:WINDOWS)`,否则你的用户在运行软件时会看到一个多余的黑框。
2.4 添加第三方库
当你的项目需要引用OpenCV、FFmpeg等第三方库时,你需要告诉VS去哪里找它们的头文件和库文件。
(1)添加头文件路径:
* 路径:`配置属性 -> C/C++ -> 常规 -> 附加包含目录`
* 作用:在这里添加第三方库的 `include` 文件夹路径。这样,你在代码中 `#include <third_party_header.h>` 时,编译器才知道去哪里寻找这个文件。
(2)添加库记录路径:
* 路径:`部署属性 -> 链接器 -> 常规 -> 附加库目录`
* 作用:在这里添加第三方库的 `lib` 文件夹路径。这只是告诉链接器库文件可能在哪些文件夹里。
(3)指定要链接的库:
* 路径:`配置属性 -> 链接器 -> 输入 -> 附加依赖项`
* 作用:在这里明确填入要求链接的具体 `.lib` 文件名,例如 `opencv_world450d.lib`。注意,Debug版本和Release版本的库文件名通常不同(Debug版本常带'd'后缀),你需要为不同的设置分别设置。
对于Qt自身的模块,你不需手动进行这些管理,Qt VS Tools会自动帮你处理好。
三、Part 3: 管理Qt版本和模块
如果你的项目中途需要增加新的Qt模块(比如网络、数据库),或者想切换Qt版本,该怎么办?Qt VS Tools给出了便捷的图形化界面。
(1)点击VS菜单栏的 `扩展` -> `Qt VS Tools` -> `Qt Project Settings`。
(2)在弹出的窗口中,`Version`下拉框可以切换当前项目关联的Qt版本(前提是你已经配置了多个Qt版本)。
(3)下方的 `Qt Modules` 列表中,你可以随时勾选或取消项目需要的模块,比如 `QtNetwork`、`QtSql`。点击“OK”后,插件会自动更新项目的包含路径和链接库设置,相当方便。
结语
VS+Qt高效创建的基石。总结一下我们的黄金法则:就是正确的配置
(1)创建项目:使用Qt VS Tools向导,注意命名规范和文件大小写。
(2)统一输出:在计划属性中,将“输出目录”设置为一个集中的 `bin` 目录。
(3)同步工作目录:将“调试”中的“工作目录”设置得与“输出目录”完全一致。这是避免“找不到DLL”困难的关键。
(4)开启控制台:在Debug模式下,将链接器的子系统改为“控制台”,方便查看调试信息。
(5)善用插件:通过Qt VS Tools的图形界面来管理Qt模块和版本。
掌握了这些配置细节,你就可能把精力完全投入到Qt应用的功能开发中,充分享受Visual Studio带来的强大生产力。
看到这里了还不给博主点一个:
⛳️ 点赞
☀️收藏
⭐️ 关注
!
❤️
再次感谢大家的支持!
你们的点赞就是博主更新最大的动力!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/925901.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!