Qt6 for Windows 环境搭建(Visual Studio)
作者: 一去、二三里
个人微信号: iwaleon
微信公众号: 高效程序员
在 Windows 中,如果想要开发 Qt 应用程序,可以选择多种方式:
- Qt Creator + MinGW 编译器
- Qt Creator + MSVC 编译器
- Visual Studio(自带 MSVC 编译器)
前两种方式之前我们已经介绍过了,主要利用 Qt Creator 作为 IDE,并配合不同的编译器来开发 Qt。现在该介绍第三种方式了,使用 Visual Studio 作为 IDE 来开发 Qt。
Qt Creator 还是 Visual Studio
经常有人会问:在编写 Qt 程序时,应该使用哪个 IDE - Qt Creator 还是 Visual Studio?
-
Qt Creator
专为 Qt 开发设计的 IDE,跨平台、轻量级、直观易用,在功能和工作流程上与 Qt 框架紧密集成。它提供了很多有用的功能,如代码编辑器、Designer 设计师、示例教程等;此外,它还具有非常好用的自动完成和代码导航功能,使我们能够更加高效地编写 Qt 代码。 -
Visual Studio
是一个强大且被广泛使用的 IDE,支持多种编程语言。它提供了丰富的功能和工具,包括代码编辑器、调试器、性能分析器等;同时它还支持很多第三方插件和扩展,比如分布式编译工具 IncrediBuild、静态代码检查工具,以及 Qt Visual Studio Tools 插件等。
总之,这两个 IDE 都可用于 Qt 开发。如果想要进行跨平台,并且要深入利用 Qt 框架的特性,建议选择 Qt Creator;如果习惯于使用 Visual Studio,并且项目需要与其他非 Qt 相关代码进行集成,则建议选择 Visual Studio。
下载 Visual Studio
有关 Visual Studio 的下载,可以参考以下地址:
- 最新版下载(VS2022):https://visualstudio.microsoft.com/zh-hans/downloads/
- 旧版本(VS2019 及之前的版本):https://visualstudio.microsoft.com/zh-hans/vs/older-downloads/
- VS2019 下载:https://learn.microsoft.com/zh-cn/visualstudio/releases/2019/release-notes
Visual Studio 一共有三个版本,Community 社区版(免费)、Professional 专业版(收费)、Enterprise 企业版(价格更贵)。由于我们是个人使用,选择 Community 社区版就足够了(Because it’s free)。
在下载 Qt6.5 时,由于我们选择了“MSVC 2019 64-bit”,因此这里建议下载对应的 Visual Studio 版本(即:2019),以防后面出现兼容问题。
安装 Visual Studio
在 Visual Studio 下载完成之后,双击准备安装。
这时会检查是否有可用的更新或者组件需要下载和安装,包括:特定的工作负载、组件、模块、或者其它相关内容。
稍等片刻,就会进入组件选择界面。
在“工作负荷”界面选择“使用 C++ 的桌面开发”,随后再选择一下语言、安装位置,就可以正常安装了:
安装过程较长,耐心等待吧!
安装插件
在 Visual Studio 安装完成之后,我们并不能立即使用 Qt,还需要安装两个额外的插件:
-
Qt Visual Studio Tools
提供了与 Qt 框架集成的功能(例如:项目模板、Designer 设计师等),以辅助我们创建、构建和调试 Qt 项目,让 Qt 在 Visual Studio 中变得更加易用。 -
Qt VS CMake Tools
专注于与 CMake 构建系统的集成,使我们能够在 Visual Studio 中使用 CMake 构建和管理 Qt 项目。
打开 Visual Studio,在最上方的菜单栏中选择【扩展】 ->【管理扩展】,然后在打开的“管理扩展”窗口中搜索“Qt”,这时搜索结果中就会出现这两个插件,分别进行下载安装:
在安装完这两个插件之后,需要重启 Visual Studio 以让插件生效。
配置 Qt
打开 Visual Studio 后,先不要着急创建项目或者打开项目,因为这时 Qt 的环境尚未准备就绪,需要配置一下。
点击“继续但无需代码”,进入主界面进行配置。
可以看到,Visual Studio 中出现了一条警告,提醒我们要配置 Qt 的版本。
选择【扩展】 ->【Qt VS Tools】 ->【Qt Versions】:
这时会弹出一个对话框,在右侧表格的“Path”所在列中,添加 Qt MSVC 安装目录下的 qmake.exe 路径:
到这里,配置就基本完成了。
环境测试
现在来创建一个测试程序,点击左上角菜单栏中的【文件】->【新建】->【项目】:
将模版列表拖动到最底下,这时会看到所有的 Qt 模版,选择 “Qt Quick Application”进行创建:
填写项目名称,并选择项目保存的位置,然后点击“创建”:
在弹出的向导界面中,会列出要包含在项目中的配置,使用默认推荐的配置即可:
接下来,就会自动生成相应的工程代码了。
选择菜单栏上的【调试】->【开始执行】(或者快捷键 Ctrl + F5)来运行代码,效果如下:
这就说明环境配置 OK 了,接下来就可以愉快的用 Visual Studio 写代码啦!
相关文章:

Qt6 for Windows 环境搭建(Visual Studio)
作者: 一去、二三里 个人微信号: iwaleon 微信公众号: 高效程序员 在 Windows 中,如果想要开发 Qt 应用程序,可以选择多种方式: Qt Creator MinGW 编译器Qt Creator MSVC 编译器Visual Studio࿰…...

探索未知世界:桌面端3D GIS引领地理信息新时代
近年来,桌面端的三维地理信息系统(3D GIS)在地理信息领域迎来了显著的发展,为我们带来了更深入、更丰富的地理空间认知和数据分析体验。从城市规划到环境保护,从资源管理到应急响应,桌面端的3D GIS正逐渐成…...

微信小程序 趣味学习与益智游戏系统APP
管理员、用户可通过HBuilder系统手机打开系统,注册登录后可进行管理员后端;首页、个人中心、用户管理、学生分类管理、学一学管理、玩一玩管理、听一听管理、试题管理、练一练管理、系统管理、考试管理,用户前端;首页、学一学、玩…...

【单片机】UART、I2C、SPI、TTL、RS232、RS422、RS485、CAN、USB、SD卡、1-WIRE、Ethernet等常见通信方式
在单片机开发中,UART、I2C、RS485等普遍在用,这里做一个简单的介绍 UART通用异步收发器 UART口指的是一种物理接口形式(硬件)。 UART是异步(指不使用时钟同步,依靠帧长进行判断),全双工(收发…...

【Java从0到1学习】13 Java IO流
1. 流 1.1 流的概念 流(stream)的概念源于UNIX中管道(pipe)的概念。在UNIX中,管道是一条不间断的字节流,用来实现程序或进程间的通信,或读写外围设备、外部文件等。 一个流,必有源端和目的端,它们可以是计算机内存的…...

linux并发服务器 —— 多进程并发(四)
进程概述 程序是包含一系列信息的文件,描述了如何在运行时创建一个进程; 进程是正在运行的程序的实例,可以用一个程序来创建多个进程; 用户内存空间包含程序代码以及代码所使用的变量,内核数据结构用于维护进程状态…...

华为云Stack的学习(四)
五、Service OM资源管理 1.Service OM简介 1.1 Service OM介绍 在华为云Stack解决方案中,Service OM是FusionSphere OpenStack的操作管理界面,是资源池(计算、存储、网络)以及基础云服务的管理工具。 1.2 Service OM定位 Serv…...

Midjourney 完整版教程(从账号注册到设计应用)
目录 一、Midjourney 介绍 二、Midjourney 的AI出图示例 三、手把手教你上手Midjourney 1、账号&初始化 1.1 账号注册登录 1.2 账号付费 1.3 账号初始化 2、Midjourney的基础设置 3、Midjourney 出图步骤。 (一)直接描述出图 (二)垫图生图。 4、Midjourney的…...
保护香港服务器的方法
保护香港服务器的方法 当你把一个香港服务器完全留给一个组织、应用程序或个人使用时,它被称为香港服务器租用。在这种类型的主机配置中,客户端将会借出整个服务器,并且不允许其他任何人使用它。 如果您计划使用香港服务器,安全性…...

Redis——》Pipeline
推荐链接: 总结——》【Java】 总结——》【Mysql】 总结——》【Redis】 总结——》【Kafka】 总结——》【Spring】 总结——》【SpringBoot】 总结——》【MyBatis、MyBatis-Plus】 总结——》【Linux】 总结——》【MongoD…...

Git企业开发控制理论和实操-从入门到深入(六)|多人协作开发
前言 那么这里博主先安利一些干货满满的专栏了! 首先是博主的高质量博客的汇总,这个专栏里面的博客,都是博主最最用心写的一部分,干货满满,希望对大家有帮助。 高质量博客汇总 然后就是博主最近最花时间的一个专栏…...
通过 ChatGPT 学习 Python
先决条件 您需要一个 OpenAI 帐户才能开始与 ChatGPT 交互。如果您还没有这样做,请在 OpenAI 网站上注册一个帐户。 什么是 ChatGPT? GPT(Generative Pre-training Transformer)是 OpenAI 开发的一种语言模型,它使用深度学习技术生成类似人类的文本。ChatGPT 是 GPT 模…...

开发卡牌gamefi游戏需要多少钱?
卡牌游戏作为一种受欢迎的游戏形式,吸引了众多开发者的关注。然而,开发一款成功的卡牌游戏需要全面考虑多个方面的因素,其中之一就是资金投入。本文将从专业性和投入回报的角度,探讨开发一款卡牌游戏所需的资金投入。 一、专业性的…...

linux服务TCP参数配置
Linux TCP参数配置 阿里云规范 1.【推荐】高并发服务器建议调小 TCP 协议的 time_wait 超时时间。 说明:操作系统默认 240 秒后,才会关闭处于 time_wait 状态的连接,在高并发访问下,服务器端会因为处于 time_wait 的连接数太多&am…...

部署Spring Boot项目
上传jar包 之前在新建Spring Boot项目[1]使用mvn install的方式,已经构建出jar包。 通过scp或rz/sz,将该jar包上传到服务器 执行java -jar hello-0.0.1-SNAPSHOT.jar,发生如下报错: Exception in thread "main" java.lang.Unsuppo…...

Java 中数据结构LinkedList的用法
LinkList 链表(Linked list)是一种常见的基础数据结构,是一种线性表,但是并不会按线性的顺序存储数据,而是在每一个节点里存到下一个节点的地址。 链表可分为单向链表和双向链表。 一个单向链表包含两个值: 当前节点…...

jmeter递增压测线程组配置
jmeter递增压测线程组配置 新建线程组线程组参数详解及填写其他指标设置 新建线程组 操作位置如图: 线程组参数详解及填写 其他指标设置 其他指标设置可参考另一篇文章: 链接: jmeter 在linux服务器中执行性能测试、监听服务器资源指标...
hutool工具
Hutool是一个Java工具包 参考:https://www.hutool.cn/ <dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>4.6.3</version> </dependency>Convert类型转换工具类 //转换为…...

Redis.conf 配置文件详解
1、units 单位 配置大小单位,开头定义了一些基本的度量单位,只支持 bytes,不支持bit,并且对大小写 不敏感。 2、INCLUDES 包含 类似于 Spring 配置文件,可以通过 includes 包含,redis.conf 可以作为总文件…...
linux磁盘空间满了
登录服务器,通过df -Hl查看 确定告警信息一致,接着是找到占用空间大目录或文件 一种比较笨的方法是,在根目录下,通过du -sh命令,列出各目录所占空间大小 之后再用同样的方法继续到对应目录下去找 再相对高效一点的…...
Cesium1.95中高性能加载1500个点
一、基本方式: 图标使用.png比.svg性能要好 <template><div id"cesiumContainer"></div><div class"toolbar"><button id"resetButton">重新生成点</button><span id"countDisplay&qu…...
基础测试工具使用经验
背景 vtune,perf, nsight system等基础测试工具,都是用过的,但是没有记录,都逐渐忘了。所以写这篇博客总结记录一下,只要以后发现新的用法,就记得来编辑补充一下 perf 比较基础的用法: 先改这…...
【ROS】Nav2源码之nav2_behavior_tree-行为树节点列表
1、行为树节点分类 在 Nav2(Navigation2)的行为树框架中,行为树节点插件按照功能分为 Action(动作节点)、Condition(条件节点)、Control(控制节点) 和 Decorator(装饰节点) 四类。 1.1 动作节点 Action 执行具体的机器人操作或任务,直接与硬件、传感器或外部系统…...

【SQL学习笔记1】增删改查+多表连接全解析(内附SQL免费在线练习工具)
可以使用Sqliteviz这个网站免费编写sql语句,它能够让用户直接在浏览器内练习SQL的语法,不需要安装任何软件。 链接如下: sqliteviz 注意: 在转写SQL语法时,关键字之间有一个特定的顺序,这个顺序会影响到…...
在Ubuntu中设置开机自动运行(sudo)指令的指南
在Ubuntu系统中,有时需要在系统启动时自动执行某些命令,特别是需要 sudo权限的指令。为了实现这一功能,可以使用多种方法,包括编写Systemd服务、配置 rc.local文件或使用 cron任务计划。本文将详细介绍这些方法,并提供…...
鱼香ros docker配置镜像报错:https://registry-1.docker.io/v2/
使用鱼香ros一件安装docker时的https://registry-1.docker.io/v2/问题 一键安装指令 wget http://fishros.com/install -O fishros && . fishros出现问题:docker pull 失败 网络不同,需要使用镜像源 按照如下步骤操作 sudo vi /etc/docker/dae…...

全志A40i android7.1 调试信息打印串口由uart0改为uart3
一,概述 1. 目的 将调试信息打印串口由uart0改为uart3。 2. 版本信息 Uboot版本:2014.07; Kernel版本:Linux-3.10; 二,Uboot 1. sys_config.fex改动 使能uart3(TX:PH00 RX:PH01),并让boo…...
全面解析各类VPN技术:GRE、IPsec、L2TP、SSL与MPLS VPN对比
目录 引言 VPN技术概述 GRE VPN 3.1 GRE封装结构 3.2 GRE的应用场景 GRE over IPsec 4.1 GRE over IPsec封装结构 4.2 为什么使用GRE over IPsec? IPsec VPN 5.1 IPsec传输模式(Transport Mode) 5.2 IPsec隧道模式(Tunne…...
.Net Framework 4/C# 关键字(非常用,持续更新...)
一、is 关键字 is 关键字用于检查对象是否于给定类型兼容,如果兼容将返回 true,如果不兼容则返回 false,在进行类型转换前,可以先使用 is 关键字判断对象是否与指定类型兼容,如果兼容才进行转换,这样的转换是安全的。 例如有:首先创建一个字符串对象,然后将字符串对象隐…...
基于matlab策略迭代和值迭代法的动态规划
经典的基于策略迭代和值迭代法的动态规划matlab代码,实现机器人的最优运输 Dynamic-Programming-master/Environment.pdf , 104724 Dynamic-Programming-master/README.md , 506 Dynamic-Programming-master/generalizedPolicyIteration.m , 1970 Dynamic-Programm…...