VS+QT快速入门教程

QT:使用VS搭建qt环境 使用 Visual Studio 搭建基于 CMake 的 QT 开发环境可以让开发者更加灵活地控制和管理 QT 项目的构建和配置,从而提高代码的可移植性和可维护性。通过配置 CMakeLists.txt 文件,可以添加 QT 组件库、自定义编译选项、定义编译器路径等,从而更好地控制 QT 项目的构建过程。使用 Visual Studio 搭建 CMake 项目可以让 QT 开发者专注于应用程序开发,从而更加高效地构建、测试和发布 QT 应用程序。 阅读详情
AI摘要

本文介绍了快速入门Qt开发在VS环境中的应用,涵盖Qt库的功能、Qt Creator IDE的推荐使用、Qt Designer的界面设计、C++构建界面、信号槽机制及常见问题解决方案。

昨天快速入门了一下在VS上开发QT,主要参考的Qt入门教程:1天玩转Qt。本文也算是这个简单教程的摘要。

1. 背景

  • Qt 不仅仅是一个GUI库,它除了可以创建漂亮的界面,还有很多其他组件,例如,你不再需要研究STL,不再需要C++的头文件,不再需要去找解析XML、连接数据库、Socket 的各种第三方库,这些 Qt 都已经内置了。
  • 独立安装:Qt 程序最终会编译为本地代码,不需要其他库的支撑,而 Java 要安装虚拟机,C#要安装 .NET Framework。
  • 但是,由于Android本身支持Java,iOS本身支持Objective-C和Swift,所以Qt 在移动端的贡献寥寥无几。总起来说,Qt 主要用于桌面程序开发和嵌入式开发。

2. 构成

安装后的 Qt 主要包含以下几部分:

  1. Qt Library:也就是 Qt 的库,这是 Qt 的核心。
  2. Qt Creator:基于 Qt 开发的一款轻量级 IDE。虽然也可以用 VS 等其他IDE 来开发Qt程序,但我们依然推荐使用 Qt Creator,它是官方专门为 Qt 开发打造的一款 IDE。
  3. Qt Designer:Qt 程序的 UI 设计器。借助 Qt Designer,即使不编写代码,拖拖拽拽也可以开发简单的 GUI 程序,并且可以及时预览程序界面(无需编译)。
  4. Qt Assistant:Qt 帮助工具,包含了Qt教程、示例、类参考手册、模块介绍等,是 Qt 的官方资料,类似 MSDN。学习 Qt,一定要会使用 Assistant 查找资料。
  5. Qt Linguist:Qt 语言家,是 Qt 的国际化工具,借助它可以很方便的将界面上的文本翻译成其他语言,从而让程序支持多种语言,面向全球用户。

3. 纯C++构建一个界面

创建工程的方法如链接所示:https://blog.youkuaiyun.com/qq_39945321/article/details/105664469
在这里插入图片描述
在主类构造函数中添加上面代码即可有下面效果:
在这里插入图片描述
这是传统的GUI程序开发方式,只使用C++代码,C++既负责设计界面,也负责处理业务逻辑。
在网页中,我们能看到的各种文字、颜色、图片、布局、按钮、菜单、列表等界面元素都是使用HTML+CSS(专门用来设计界面的声明式语言)创建的,而后台逻辑才需要JavaScript、Python、PHP、Java等编程语言来处理。
现代GUI程序的设计,或许也借鉴了Web开发的思想,可以使用 XML 来设计界面,使用C++来处理后台逻辑,在 Qt 中可以轻而易举的做到前端和后台分离,从而让代码逻辑更加清晰,开发更加高效。这就是QT Designer的作用。

4. 使用QT Designer构建一个界面

新建工程的时候module选中XML组件,这样新建的工程中就会出现.ui文件。也可以按照“VS+Qt modules项目后期勾选Network、XML等”中的方案新加。双击.ui文件就可以打开Qt Designer.
然后就是开始拖动各种组件到界面中。可以在 窗体->预览 中查看效果;可以在 窗体->查看代码 中看该UI界面的代码。但是并没有看到编辑模式和设计模式的切换,也就没有看到具体的xml文件的内容。
在这里插入图片描述
在这里插入图片描述
XML是一种标记语言(也称声明式语言),由一个一个地节点组成,每个节点还可以包含多个属性,HTML 就是 XML 的一种具体化。

5. 解析一个简单的Qt程序

在这里插入图片描述

  • 第1~3行代码引入对应的头文件。在Qt中,头文件设计的非常规范,大部分情况下一个类对应一个头文件,类名和头文件名相同,以字母“Q”开头。一个控件对应一个类,要想使用控件,必须包含对应的头文件。
  • Qt 程序的入口函数和 C++ Console 程序一样,都是 main() 函数;参数也是一样的。
  • QApplication 类主要用来管理程序的生命周期(包括初始化设置和销毁工作),开启事件循环。对于任何一个 Qt GUI 程序,必须有且仅有一个 QApplication 对象,但可以存在零个或多个窗口。
  • QMainWindow 表示主窗口,它是一个顶级窗口。在 Qt 中,一个控件可以有父辈,这个父辈可以是一个窗口,也可以是一个容器控件。父辈有管理控件的作用,当父辈被销毁时,子控件也都被销毁,释放内存。
  • setGeometry(100, 50, 160, 30) 设置 Label 控件的几何尺寸,100 为左边距,50 为上边距,160 为控件宽度,30为控件高度,单位都是像素(px)。边距是相对父辈 w 来说的。
  • 控件被创建后只是分配了内存,并不可见,还需要调用 show() 函数显示出来。w 是 label 的父辈,父辈调用 show() 函数也会显示所有子控件,所以 label 就不需要再调用 show() 了。
  • exec() 使程序进入消息循环,等待可能发生的事件,例如鼠标点击、键盘输入等。这里 main() 把控制权转交给 Qt,由 Qt 完成事件处理工作,程序退出时 exec() 的值就会返回。在 exec() 中,Qt 接受并处理用户和系统的事件,把它们传递给适当的窗口控件。

实际使用中,工程会自动新建主窗口类(新建工程的时候指定命名),类的构造函数中用来初始化各种控件,绑定槽函数等,如下所示:
在这里插入图片描述
SetupUi函数定义在ui_xxx.h中,就是在QT Designer中设计的UI所生成的文件。
在这里插入图片描述

6. QT中的类

首先放出一个类继承图:
https://blog.youkuaiyun.com/Faith_yu/article/details/53025582
在这里插入图片描述
可以看到所有的控件/窗口的基类都是Qwidget.
在 Qt 中,我们将窗口和控件统称为部件(Widget)。窗口是指程序的整体界面,可以包含标题栏、菜单栏、工具栏、关闭按钮、最小化按钮、最大化按钮等;控件是指按钮、复选框、文本框、表格、进度条等这些组成程序的基本元素。
需要注意的是,窗口和控件都继承自 QWidget,如果不为控件指定父对象,它就会被作为窗口处理,这时 setWindowTitle() 和 setWindowIcon() 函数就会生效。

7. 信号与槽

GUI 程序除了要绘制控件,还要响应系统和用户事件,例如重绘、绘制完成、点击鼠标、敲击键盘等。Qt 独创了信号和槽机制。
信号是QT在捕获事件后发出的,可以是鼠标点击,鼠标移动等,需要注意的是,信号不是事件。当用户点击“取消”按钮时,Qt 会捕获该点击事件,进行预处理,然后发射 clicked() 信号;
槽则可以认为是回调函数,就是接受到信号以后执行的动作。
信号与槽的连接使用connect函数。connect() 是 QObject 类的静态成员函数,它有多个原型:
在这里插入图片描述
Q_OBJECT 是 Qt 中的宏,借助它才能实现信号和槽机制,继承 Qt 类时都要在类声明的开头添加 Q_OBJECT。
观察上面的原型,除了最后一个有3个参数,其他都有4个参数,其中:

  • sender 为信号发送者,receiver 为信号接收者,它们都是对象指针。
  • 第1个原型中,signal 为信号,method 为槽函数,它们都是字符串,必须借助 SIGNAL() 和 SLOT() 将函数形式转换为字符串形式。SIGNAL() 和 SLOT() 是宏,而非函数。
  • 第2个原型中,PointerToMemberFunction 为指向成员函数的指针。
    在这里插入图片描述
    这是 Qt 5 新增的原型,可以在编译期间进行检查,如果信号和槽不存在或者不匹配,则会报错。而第1种原型是从 Qt 诞生以来一直支持的,不能在编译期进行检测,如果信号和槽有误,只会在程序运行期间给出警告并返回 false,不容易发现问题,这是它的一个缺陷。所以在 Qt 5 中鼓励使用第2种原型。
    关于信号和槽的实例,可以参考http://c.biancheng.net/cpp/html/3066.html
    自定义槽的方式可以参见“QT入门问题点:QT Designer 没有“转到槽”项”。

8. 使用中遇到的问题

  1. VS+Qt modules项目后期勾选Network、XML等:
    https://blog.youkuaiyun.com/yanchenyu365/article/details/90055024
  2. QT入门问题点:QT Designer 没有“转到槽”项:
    https://blog.youkuaiyun.com/zcm_bobo/article/details/104658045
  3. 重新编译VTK库,编译的方法可以参考下面链接的7.1之前的部分,之后的部分不用理会。
    https://blog.youkuaiyun.com/numit/article/details/9983495?utm_source=distribute.pc_relevant.none-task
    将build目录下的QVTKWidgetPlugin.dll,QVTKWidgetPlugin.exp,QVTKWidgetPlugin.lib复制到QT安装目录Qt\plugins\designer。打开Qt Designer可以发现多一个组件。
    在这里插入图片描述
VS 运行QT程序,一些配置 解决vs中使用qt遇到的一些基础配置问题。 阅读详情

相关推荐

QT+VS开发界面入门(qt界面在VS2022实现自动生成槽函数)

QT+VS开发入门 无论使用QT Creater单独开发,或者使用VS的MFC单独开发,都能通过转到槽函数/双击插件,进行跳转一个插件的响应函数。 而习惯了使用VS编程,又想使用QT进行界面开发,那就很有必要看一下这篇文章。 关于QT与VS如何联动,请看我的另一篇文章:VS+QT开发环境搭建 创建项目 先上项目列表: ui_QtWidgetsApplication1.h:包含了UI界面内的参数属性。界面布局,插件位置,槽函数的连接函数等。 QtWidgetsApplication1.ui:UI界面,双击打

MelyLenient的博客 3万+

VS中使用Qt开发项目

在VS中开发Qt项目遇到的问题,包括各部分的版本如何选择以及如何相互连接的问题

陈七的博客,学习知识分享,期待与大家的交流 1万+

Qt 5.14.2揭秘高效开发:如何用VS2022快速部署Qt 5.14.2,打造无与伦比的Windows应用

Qt 是一个跨平台的应用程序开发框架,最初由挪威的 Trolltech 公司开发,并于2008年被诺基亚收购。后来,Qt 框架由 Digia 公司接手,并在2012年成立了 The Qt Company。Qt 提供了一套丰富的工具和类库,可用于开发图形用户界面(GUI)应用程序、嵌入式系统、网络应用程序和其他各种类型的软件。Qt 的应用领域非常广泛,包括桌面应用程序、移动应用程序、嵌入式系统、汽车娱乐系统、工业自动化和物联网等。它被许多大型跨平台应用程序和公司所采用,并且拥有庞大的开发者社区和支持。

w风雨无阻w的专栏 5148

VS 与Qt的混合编程

我们来看一下Qlabel的手册, 首先label作用是显示文本或者图像,留出来的属性接口可以让你自己去构造属于你自己的label的样式,根据方法函数,让你去添加label的动作。举个例子,qt的组件lineedit是个输入框,接收来自用户的输入,接收输入的内容是字符串型,也就是QString,在qt中,一些数据结构,都被QT改边,并且冠上独家姓氏,Q。如果数据是死的,那么就是label->setText("hello"),但是如果你需要数据能够变化,那么你需要去改变QString,让它是一个变化的量。

Jinyizhi2233的博客 6165

VS2019中搭建QT 5.15.2开发环境

VS2019中搭建QT 5.15.2开发环境

weixin_48039953的博客 2742

SpringCloud2025+SpringBoot3.5.0动态路由503问题排查与负载均衡依赖解析

本文详细排查了SpringCloud 2025与SpringBoot 3.5.0环境下,Spring Cloud Gateway动态路由返回503错误的根本原因。核心问题在于新版网关未默认集成负载均衡器,导致无法解析lb://服务名。通过对比静态路由与动态路由,定位到需显式引入spring-cloud-starter-loadbalancer依赖,并提供了完整的解决方案与最佳实践配置。

s3t4u的博客 501

如何快速将Visual Studio工程迁移到Qt跨平台环境:vs2qt入门教程

前往项目官网免费下载:[https://ar.openeuler.org/ar/](https://ar.openeuler.org/ar/?utm_source=csdn_blog) 在跨平台开发中,将Visual Studio工程迁移到Qt环境是许多开发者面临的挑战。vs2qt作为一款高效的Visual Studio工程转换工具,能帮助开发者快速将VS工程转换为Qt支持的Pro项目文件,实现

gitblog_06895的博客 181

.NET 4.0下HttpWebRequest请求HTTPS报错?试试这个注册表修改方案

本文深入解析.NET 4.0下HttpWebRequest请求HTTPS报错问题,提供注册表修改方案以解决'基础连接已经关闭'错误。通过调整SchUseStrongCrypto注册表项,强制使用TLS 1.2等现代加密协议,确保安全连接。适用于企业环境部署和长期维护建议。

weixin_29310631的博客 355

Qt5.1.1+Vs2012+Win8+X86

在看了很多参考和自己实践得出: 第一步: 软件环境准备 1) Vs2012 2)qt-windows-opensource-5.1.1-msvc2012-x86-offline.exe 3)   qt-vs-addin-1.2.2-opensource.exe 第二步: 软件安装 1)安装Vs2012 2)安装Qt.5.1.1 3)  安装qt-vs-addin 第三步:环境设置

bupt10212029的专栏 4106

Ubuntu 24.04 下 NoMachine 极速安装与远程桌面配置全攻略

本文详细介绍了在Ubuntu 24.04系统下安装和配置NoMachine远程桌面的完整指南。从系统准备、分步安装到性能调优和常见问题解决,帮助用户快速实现低延迟的远程桌面访问。特别适合开发者和IT管理员在Linux环境下高效部署远程工作环境。

moon9的博客 945

STM32 FDCAN热插拔恢复机制与自动重发功能优化

本文深入分析了STM32 FDCAN在热插拔场景下触发bus-off状态导致通讯中断的根本原因,指出自动重发功能是问题关键。通过禁用自动重发、配置硬件自动恢复机制及优化总线参数,实现了FDCAN热插拔后的100%稳定恢复,为工业应用提供了可靠的CAN总线解决方案。

ice55的博客 685

C++| VS+QT快速入门

VS+QT快速入门,搞懂QT Creater和VS+QT的区别,以及为什么VS+QT开发,引入简单的加法器案例作为入门实例。

qq_40306845的博客 3257

MuJoCo 入门教程(八)Model仓库

一个物理仿真器的好坏取决于它所仿真的模型,而在像 MuJoCo 这样功能强大、建模选项众多的仿真器中,很容易创建出行为与预期不符的 "坏 "模型。MuJoCo Menagerie 的目标是为社区提供一个设计精良、开箱即用的模型集。更多信息,请访问 Menagerie 资源库。

机器人控制与仿真应用 1939

Vs2019+Qt

一、下载vs2019和qt...

gaocui883的博客 3万+

【YOLO26科研级突破】集成BiFPN双向特征金字塔,让多尺度特征融合效率与精度双跃升

打开确保模型解析器能识别BiFPN模块。通过将BiFPN双向特征金字塔集成到YOLO26中,我们实现了一个“全尺度双向特征流动+加权融合+精准检测”的目标检测模型。这个改进不仅在工程上能大幅提升多尺度、复杂场景下的检测精度,更在科研上提供了“双向特征融合”的创新思路——这种思路可以延伸到其他检测网络(如Faster R-CNN、SSD)的Neck模块改进中,帮你在论文中打造独特的研究点。

LXY_LOVE36的博客 198

【DaVinci Developer专题】-8-创建一个枚举Enum ADT(Application Data Type)

目录 1 创建一个枚举Value ADT(Application Data Type) 1.1 命名application data type 1.2 创建一个computation method计算方法属性 1.3 创建一个Contraint约束条件属性 2 创建了一个新的Type Mapping Sets 3 创建了一个S/R Port Interface 4 SWC引用Type Mapping set 5 导入CFG生成代码的总结 6 结尾 <--返回「实战篇」博文-总目录-

「汽车电子助手」的博客 2291

【QT教程】QT5+VS2017 绘制曲线(QCustomPlot) 及 EXCEL的快速读取和写入(QAxObject)

本篇文章对一下几点进行了总结 1.利用QCustomPlot绘制曲线的基本操作 2.利用QAxObject对excel文件进行读取、写入操作 3.比较了QT对Excel文件快速和慢速读写方法的异同 4.总结了一些常见坑爹地方

天才小傲傲的博客 8162

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

VS2019配置QT5.12.3

新手VS2019配置QT采坑记录 1、QT下载 推荐下载Qt5.12.3版本(5.12为LTS长期支持版本),官方下载速度较慢,建议采用镜像源下载:https://mirrors.tuna.tsinghua.edu.cn/qt/archive/qt/5.12/5.12.3/; 2、QT安装 下载完成后进行安装,注意一开始提示需要注册qt账号。 此外,需要勾选一些常用的组件: 然后是漫长的等待...

weixin_44443053的博客 9205

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

VS2008下QT的使用

<br />个人觉得QT是一个很好的框架,但是我却不想去学他里边很深的东西,只想用QT的界面库,因为MFC实在是太垃圾了,已经受够了。<br />用QT Designer可以进行快速的界面开发,QT文档丰富,易学易用。现在QT已经可以很好地支持VS了。<br />下面介绍如何用VS2008使用QT库。<br />1、上QT官网下载qt-win-opensource-4.7.1-vs2008.exe<br />2、下载 qt-vs-addin-1.1.3.exe<br />3、安装上面那两个软件。<br />

淡蓝 3963

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

Qt 开发环境选择Qt Creator、Visual Studio还是 VS Code?

Qt开发环境选择指南:三大IDE对比分析 本文对比了Qt开发中常用的三种IDE工具。Qt Creator作为官方工具,深度集成Qt框架,提供跨平台支持和高效调试,但生态规模较小;Visual Studio拥有强大的调试和MSVC编译器优化,适合企业级开发,但跨平台支持较弱;VS Code轻量灵活,扩展性强,但需手动配置Qt支持。选择建议:纯Qt项目优先Qt Creator,Windows企业开发选VS,追求轻量化或跨平台一致性考虑VS Code。公司项目需综合技术栈、团队习惯和性能需求进行选择。

本博客分享软硬件一体化开发实战。硬件涵盖 PCB 设计、STM32 等 MCU 底层开发;软件包含 C++、Rust,Qt/QML、PyQt、Slint、TouchGFX、LVGL 各类 GUI 框架。方便软硬件开发者查阅学习。欢迎关注! 3170

Qt安装—搭建VS2008+QT开发环境

http://blog.youkuaiyun.com/mac_cm/article/details/6591168 Qt安装—搭建VS2008+QT开发环境   (一)工欲善其事,必先利其器,废话不多讲。       总结起来网上流行的VS2008+QT安装说明有以下几个问题需要解释清楚:      1,首先明确需要下载什么版本的QT。网上流行的安装说明只是针对过去旧版本的QT

Huhuang的专栏 2144

vs+qt开发环境安装

VS2013+QT5.6.0安装 一、VS2013安装 1、下载 VS2013 、QT5.6.0 、qt-vs-addin-1.2.5 2、安装VS2013,双击运行vs_ultimate.exe进行安装 3、选择软件安装位置,不建议安装在C盘下,会导致系统变慢,可以安装在D:\Program Files文件夹下。 4、此处可有选择要安装的工具,由于在以后开发过程中主要...

youtiao_hulatang的博客 1917

VS2022开发Qt项目基本步骤

【示例】VS2022开发Qt项目基本步骤。

weixin_48596603的博客 5336

QT5安装教程+VS2019配置

QT安装教程+VS配置 最近参加了学校联合校外公司一起搞的一个项目,使用到了QT 这里分享一下自己踩过的一些坑和QT的基本安装教程 前言 其实总的来说使用QT来做界面开发还是很不错的 ui界面很友好,但是不要过于沉迷其中,最核心的东西还是代码的逻辑 安装教程 官网这个东西,在国内速度真的,,,一言难尽,推荐使用清华大学的镜像,当让还有其他蛮多镜像的,这里就不放连接了,应该注意的是,QT5.15.0之后的版本都不支持离线安装了,嫌麻烦的同学直接下载5.14以前的就好了 QT官方网站:https://www.q

qq_51709862的博客 3464

VS2015/QT creator + Qt5.8.0

VS2015/QT creator + Qt5.8.0 PS:两个版本都试过,内含下载资源

weixin_45294823的博客 1275
上一篇: 3D重建 “Real-time 3D Reconstruction at Scale using Voxel Hashing“
下一篇: 给opencv函数写一个python装饰器
隋边边
博客等级 码龄11年 304粉丝 91原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值