当前位置: 首页 > news >正文

【从零开始学习QT】Qt 概述

目录

一、什么是 Qt

1.1 简介

1.2 Qt 的发展史

1.3 Qt 支持的平台

1.5 Qt 的优点

1.6 Qt 的应用场景

二、搭建 Qt 开发环境

2.1 Qt SDK 的下载

2.2 Qt SDK 的安装

2.3 验证 Qt SDK 安装是否成功

2.4 Qt 环境变量配置

三、认识 Qt Creator

3.1 Qt Creator 概览

3.2 使用 Qt Creator 新建项目

3.2.1 新建项目

​编辑

3.2.2 选择项目模板 

 3.2.3 选择项目路径

3.2.4 选择构建系统

3.2.5 填写类信息设置界面

3.2.6 选择语言和翻译文件

3.2.7 选择 Qt 套件

3.2.8 选择版本控制系统

3.2.9 最终效果

3.3 认识 Qt Creator 界面

3.3.1 左边栏

3.3.2 代码编辑区

3.3.3 UI设计界面

3.3.4 构建区

四、Qt Hello World 程序

4.1 简单实现

4.1.1 可视化操作实现

4.1.2 纯代码方式实现

4.2 使用输入框实现

4.3 使用 "按钮" 实现


一、什么是 Qt

1.1 简介

Qt 是一个 跨平台的 C++ 图形用户界面应用程序框架 。它为应用程序开发者提供了建立艺术级图形界面所需的所有功能。它是完全面向对象的,很容易扩展。Qt 为开发者提供了一种基于组件的开发模式,开发者可以通过简单的拖拽和组合来实现复杂的应用程序,同时也可以使用 C++ 语言进行高级开发

图形用户界面 :指采用图形方式显示的计算机操作用户界面,是计算机与其使用者之间的对话接口,是计算机系统的重要组成部分。如下分别是:Android 手机图形用户界面 和 IOS 手机图形用户界面。

1.2 Qt 的发展史

1991 年 Qt 最早由奇趣科技开发;
1996 年 进入商业领域,它也是目前流行的 Linux 桌面环境 KDE 的基础;
2008 年 奇趣科技被诺基亚公司收购,Qt 成为诺基亚旗下的编程工具;
2012 年 Qt 又被 Digia 公司收购;
2014 年 4 月 跨平台的集成开发环境 Qt Creator3.1.0 发布,同年 5 月 20 日发布了 Qt 5.3 正式版,至此 Qt 实现了对 IOS、Android、Embedded 等各平台的全面支持。

1.3 Qt 支持的平台

• Windows – XP、Vista、Win7、Win8、Win2008、Win10
• Unix/X11 – Linux、Sun Solaris、HP-UX、Compaq Tru64 UNIX、IBM AIX、SGI IRIX、FreeBSD、BSD/OS、和其他很多 X11 平台
• Macintosh – Mac OS X
• Embedded – 有帧缓冲支持的嵌入式 Linux 平台,Windows CE
• Android

1.5 Qt 的优点

• 跨平台,几乎支持所有的平台;
• 接口简单,容易上手,学习 QT 框架对学习其他框架有参考意义。
• 一定程度上简化了内存回收机制;
• 开发效率高,能够快速的构建应用程序。
• 有很好的社区氛围,市场份额在缓慢上升。
• 可以进行嵌入式开发。

1.6 Qt 的应用场景

• 桌面应用程序
        Qt 能够创建各种类型的桌面应用程序,包括文件管理器、媒体播放器、绘图程序等。Qt 应用程序支持多种操作系统,可以运行在 Windows、Linux、macOS 等桌面操作系统上。
• 移动应用程序
        Qt 支持 Android 和 IOS 移动操作系统,为应用程序提供了强大的跨平台能力。可以使用 Qt 构建各种移动应用程序,例如社交应用、游戏、娱乐等。
• 嵌入式系统
        Qt 在嵌入式领域应用非常广泛,它可以构建面向各种设备的图形应用程序,在机顶盒、车载娱乐系统、安防监控设备等领域具有广泛的应用。

二、搭建 Qt 开发环境

2.1 Qt SDK 的下载

Qt 下载官网:http://download.qt.io/archive/qt/   (下载的时候可能需要外挂)

1、打开官网链接,进入如下图示界面;

2、选择需要下载的版本;(本人所用为5.14版本,根据自己需求下载即可)

2.2 Qt SDK 的安装

1、找到下载的文件并双击;注意:在双击之前先断网,否则需要我们注册 Qt 账号登录后才能进入下一步安装;

2、双击之后进入如下界面:

3、选择安装路径时不能出现中文路径,否则即使安装上也无法使用;

4、选择安装组件;(如果空间足够也可以全选)

2.3 验证 Qt SDK 安装是否成功

1、双击打开 Qt Creator 工具,并进入到 "欢迎模式" 下的 "示例" 界面;

2、在 "示例" 中任选其中一个,单击打开该示例。在单击之后会弹出一个窗口,关闭即可;

 

如果能构建并运行,说明安装无误。运行结果如下图

2.4 Qt 环境变量配置

1、找到Qt的安装路径,复制 "bin" 路径;

2、"此电脑" ------> 鼠标右键, "属性" ------> "高级系统设置" ------> "环境变量"

3、"新建" ------> 填入 "bin" 路径 ------> "确定" ;

注意:在关掉所有窗口时,一定要点击 "确定"

三、认识 Qt Creator

3.1 Qt Creator 概览

 从 开始菜单 或者 快捷方式 打开 Qt Creator 集成开发环境,启动之后看到类似下面的界面:

①:菜单栏。菜单栏一共有 8 个菜单选项,包含了常用的功能菜单:

②:模式选择

③:构建套件选择器。构建套件选择器包含了目标选择器(Target selector)、运行按钮(Run)、调试按钮(Debug)和构建按钮(Building)四个图标。

④:欢迎模式下的窗口工作方式。

⑤:定位器。使用定位器来快速定位项目、文件、类、方法、帮助文档以及文件系统。可以使用过滤器来更加准确地定位要查找的结果。

⑥:输出窗格。输出窗格包含了问题、搜索结果(Search Results)、应用程序输出、编译输出、Debugger Console、概要信息、测试结果(Test Results)7个选项,它们分别对应一个输出窗口,响应的快捷键依次是 Alt+数字1~7。

⑦:会话记录;可以对会话进行管理,包括 Clone。如果没打开工程,则显示的是最后一次打开的
(会话)工程,否则,显示当前的会话(工程)。
⑧:新建项目;

⑨:打开已有项目;

3.2 使用 Qt Creator 新建项目

3.2.1 新建项目

打开 Qt Creator ,在菜单栏中选中: "文件" --------> "新建文件或项目" ;或者使用快捷键:Ctrl +
n;或者直接点击:"new";

在欢迎模式下,直接点击 New,如下图示

3.2.2 选择项目模板 

新建项目对话框里有五类项目模板:

常用的只有第一类 Application,选择它,在右侧会看到 Qt 应用程序的五个子模板

• Qt Widgets Application:普通窗体模板,传统基于部件的窗体界面程序。
• Qt Console Application:Qt 控制台应用程序。因为 Qt 主要用于图形界面设计,这个控制台项目模板基本不用。
• Qt for Python:在Python下用 LGPL 的许可来开发闭源 Qt 软件。
• Qt Quick Application: Qt 提供的一种高级用户界面技术,使用它可以方便快速的为移动以及嵌入式设备开发流畅美观的用户界面。Qt Quick 模块是开发 QML 应用的标准库,提供了使用 QML 创建用户界面所需的一切,包括可视化、交互、动画、模型、视图、粒子效果以及着色效果等。

 3.2.3 选择项目路径

3.2.4 选择构建系统

Qt 中的构建工具有三种可供选择,分别是:qmake、CMake、Qbs,下面依次介绍。

qmake: qmake 是一个构建工具(build tool),用于自动生成 makefile 文件。qmake 支持跨平台构建。qmake 编辑的是一个后缀名为 .pro 的文件
• CMake:CMake 是一个跨平台的构建工具。CMake 本身不是一个编译器,其实就是生成一个让编译器能读懂编译流程的文件工具。让 CMake 自动生成构建系统,例如 Makefile 和 Visual Studio项目文件。CMake 是一个第三方工具,有自己的文档。
• Qbs:Qbs(Qt Build Suite:Qt构建套件)同 qmake、CMake 一样都是构建工具。Qbs 号称是新一代的构建工具,比 qmake 编译速度更快。Qbs 没有绑定 Qt 版本,它从项目文件的高级项目描述中生成一个正确的依赖表。而传统的 MakeFile 生成工具如 qmake 和 CMake ,其在生成 MakeFile文件后将实际的命令交给 Make 工具去执行。

3.2.5 填写类信息设置界面

对于基类的选择,目前有三种基类:

3.2.6 选择语言和翻译文件

点击 "下一步" 进入如下界面:
此处选择的语言是 "汉语", "英语" 这样的语言. 而不是 "编程语言".

由于我们暂时不考虑国际化问题, 直接下一步即可.

3.2.7 选择 Qt 套件

默认只有第一个 "Desktop Qt 5.14.2 MinGW 64-bit",如果安装配置了多个 Qt 套件,就可以都选上。
Qt 套件是指 Qt 程序从编译链接到运行环境的全部工具和 Qt 类库的集合,对于 MinGW 版本 Qt 程序生成和调试,至少需要 MinGW 中的编译器 g++(自动调用链接器)、g++ 配套的基础库、调试器 gdb 还有使用 MinGW 环境编译而成的 Qt 类库自身。默认情况下,在上面 Kit Selection 里选中全部套件。

3.2.8 选择版本控制系统

点击 "下一步" 进入 项目管理界面;在项目管理界面可以设置作为子项目,以及加入版本控制系统管理。这两个功能暂时用不到,都用默认的 <None> ,然后点击 "完成" 。

如果想把代码提交到gitee或者 github, 可以在此处选择 git 作为版本控制系统.

3.2.9 最终效果

项目创建完成之后,Qt Creator 会直接进入代码编辑模式,可以看到类似下图界面:

3.3 认识 Qt Creator 界面

3.3.1 左边栏

在编辑模式下,左边竖排的两个窗口叫做 "边栏" 。① 是项目文件管理窗口,② 是打开文件列表窗口。在 QtCreator 菜单 "控件" -------> "Show Left Sidebar",或者使用快捷键:"Alt + 0" 可以控制边栏的显示和隐藏。

边栏里的窗口数目可以增加,边栏子窗口标题栏有一排小按钮,最右边的是关闭按钮,倒数第二个是增加分栏按钮,可以添加多个边栏子窗口

边栏子窗口标题栏第一个控件是组合框,可以选择该子窗口的功能视图类型,目前可以选择 8 个视图类型:

3.3.2 代码编辑区

①和②:导航按钮 "返回" 和 "前进",这与网页浏览器的前进和后退按钮类似,可以在之前浏览的多个代码文件或一个代码文件里多个位置之间快速切换。
③:标识当前显示的文件是只读还是可写,一般都是可写的。
④:文件类型图标,当前显示文件的类型,这个控件其实是一个菜单按钮,点击可以弹出丰富的文件处理功能菜单。
⑤:打开的文件名,可以在多个打开的文件之间选择切换,与边栏的 "打开文档" 视图是对应的。
⑥:关闭当前显示的文档。
⑦:为当前显示的文件添加额外的C++预处理指令,一般用不着。
⑧:选择符号,可以在当前显示的文件里多个函数、类、成员变量等之前快速切换,与边栏"大纲"视图是对应的。
⑨:编辑区光标的行号和列号。
⑩:代码编辑区分栏,可以增加多个编辑器窗口,显示多个打开的文档或显示较大源码文件的多个位置。

行首区:主要用来显示代码行号,以及调试断点标志和代码书签标志。右击行首区可以弹出右键菜

单,菜单里可以切换书签、编辑书签以及设置或取消断点。
同一行是既可以打断点也可以设置书签的,二者不冲突,其实它们根本就没关系。单击行号前面的浅灰色空白区可以直接打断点,再次单击可以取消断点,另外也可以用快捷键 F9 设置或取消断点。代码书签一般用右键菜单来设置,也可以用快捷键 Ctrl+M 设置或取消书签。

编辑区:写代码的区域。

3.3.3 UI设计界面

双击 widget.ui 文件,Qt Creator 会自动进入设计模式,可以对图形界面进行可视化编辑:

①:组件选择窗口。组件选择窗口分为多个组,如 Layouts、Buttons、Display Widgets 等,界面设计的常见组件都可以在组件选择窗口中找到。
②:UI 设计窗口。如果要将某个组件放置到该窗口上时,从组件选择窗口上拖放一个组件到窗体上即可。
③:动作编辑窗口。动作编辑窗口包括 Action Editor 以及 Signals 和 Slots 编辑器。 Action Editor 主要是用来新建 Action,并且通过拖拽的动作,将新建好的 Action 添加到菜单栏和工具栏上;Signals和 Slots 编辑器用于可视化地进行信号与槽的关联。
④:对象浏览窗口。用树状视图显示窗体上各组件之间的布局包含关系,视图有两列,显示每个组件的对象名称(ObjectName)和类名称。
⑤:属性设置窗口。显示某个选中的组件或窗体的各种属性及其取值,可以在属性设置窗口里修改这些属性的值。

3.3.4 构建区

左下角一共有四个按钮,下面分别介绍一下:
• 第一个按钮是选择构建项目使用的 Qt 套件和构建目标程序的类型(Debug 或 Release)。
对于第一个按钮,默认的是Debug,构建的是 Debug 类型的目标程序。如果需要构建 Release 版目标程序,点开左下角第一个按钮:

这里有三种构建模式:

四、Qt Hello World 程序

4.1 简单实现

4.1.1 可视化操作实现

1)双击:" widget.ui " 文件;

2)拖拽控件至 ui 界面窗口并修改内容;

3)构建并运行,效果如下所示:

4.1.2 纯代码方式实现

这里我们使用了new,却没有delete,会不会造成内存泄漏?答案是不会

label对象会在合适的时候被析构函数释放,主要是因为把这个对象是挂到了对象树上

对象树:本质上是一个属性结构(N叉树),通过树形结构把界面上的各种元素组织起来

如果你的对象没有挂到对象树上,就必须要记得手动释放!!

4.2 使用输入框实现

使用代码

4.3 使用 "按钮" 实现

通过代码


本篇完,下篇见!

相关文章:

  • mysql prepare statement
  • Flink 状态管理深度解析:类型与后端的全面探索
  • DrissionPage:重新定义Python网页自动化,让爬虫与浏览器控制合二为一
  • Spring AI Alibaba 发布企业级 MCP 分布式部署方案
  • day12 leetcode-hot100-19(矩阵2)
  • 中山大学无人机具身导航新突破!FlightGPT:迈向通用性和可解释性的无人机视觉语言导航
  • ICDMC 2025:创新媒体模式,迎接数字时代的挑战
  • SpringBoot+tabula+pdfbox解析pdf中的段落和表格数据
  • 算力卡上部署OCR文本识别服务与测试
  • 基于深度学习的工业OCR实践:仪器仪表数字识别技术详解
  • Tesseract OCR 安装与中文+英文识别实现
  • c++设计模式-单例模式
  • 【Microsoft 365可用】PPT一键取消所有超链接
  • 私有化部署DeepSeek后行业数据模型的训练步骤
  • “顶点着色器”和“片元着色器”是先处理完所有顶点再统一进入片元阶段,还是一个顶点处理完就去跑它的片元?
  • 说说线程有几种创建方式
  • 嵌入式自学第三十天(5.28)
  • 运维三剑客——sed
  • ArcGIS Pro裁剪影像
  • 单例模式的隐秘危机
  • 传奇发布网站排行/网站关键词排名优化价格
  • 利用vps做网站/企业网站管理
  • 舒城县建设局网站/上海好的网络推广公司
  • 做营销型网站公司/站长之家工具
  • 谁知道做网站的电话/如何推广公司
  • 浅析b2c电子商务网站的建设/关键词指数查询工具