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

【Qt】背景知识 + 环境搭建

背景知识 + 环境搭建

  • 一. 互联网核心岗位职责
  • 二. 客户端和服务器
  • 三. 图形化界面 GUI
  • 四. 库和框架
  • 五. QT 是什么
  • 六. 环境搭建
    • 1. Qt SDK 的下载和安装
    • 2. 配置环境变量
  • 七. Qt Creator
    • 1. 新建项目
    • 2. 选择项目模板
    • 3. 选择项目路径
    • 4. 选择构建系统
    • 5. 填写类信息设置界面
    • 6. 选择语言和翻译文件
    • 7. 选择 Qt 套件
    • 8. 选择版本控制系统
  • 八. 项目文件解析
    • main.cpp 文件
    • weiget.h 文件
    • weiget.cpp 文件
    • widget.ui 文件
    • .pro 文件

一. 互联网核心岗位职责

  • 开发:程序员。
    • 后端开发:
    • 前端开发:
    • 算法工程师:
    • 前端开发:
      • 网页前端开发:做网页。
      • 桌面应用开发:做电脑上的应用程序。
      • 移动应用开发:做手机上的应用程序。
  • 测试:测试工程师。
  • 运维:管理机器。
  • 产品经理:非技术岗,提出需求。

准确的说,Qt 特指用来进行桌面应用开发 (电脑上写的程序),涉及到的一套技术,Qt 无法开发网页前端,也不能开发移动应用 (目前 Qt 官方也支持移动应用开发了,但是还没听说有啥知名的商用移动应用程序是 Qt 开发的)

二. 客户端和服务器

  • 客户端:直接和用户打交道的这一端的程序,例如:QQ 音乐、steam 等等。
  • 服务器:站在客户端背后的程序。

虽然大部分的客户端程序,是需要有背后的服务器做支撑的,但是确实也有一些程序,是不需要服务器的,这样的程序,例如:画图板、计算器,同样也是直接和客户打交道,也可以称为 “客户端程序”。

客户端开发的重要任务:编写和用户交互的界面。

三. 图形化界面 GUI

和用户交互的界面,两种典型风格:

  • 命令行界面/终端界面 (黑框框):专业软件,给程序员用的,称为 TUI
  • 图形化界面:给普通用户用的,称为 GUI

Qt 是用来编写桌面的 GUI 程序的一套框架,在 Windows 编写 GUI 程序,也是存在很多种解决方案的,Qt 只是其中一种。

Windows 下基于 C/C++ 开发 GUI:

  • Windows API:Windows 系统提供原生 API
    • 开发起开非常原始,也非常繁琐。
  • MFC:将系统提供原生 API 进行封装。
    • 上个世纪 90 年代和 VC 6.0 的影响力非常深远。
  • Qt:和 MFC 有很多的相似之处,采用面向对象的方式,将系统提供的 API 进行封装,且跨平台。
    • 和 MFC 不同,MFC 早就已经不更新了,也就是寄了,Qt 仍然在不停的推陈出新,更新新的版本,至今仍然非常有生命力。

后来微软自己搞出一个编程语言 C# (C sharp)

  • Windows Froms:给 C#、.net 量身定做的一套开发 GUI 技术体系。
  • WPF:基于 .NET Framework,采用 XAML 进行用户界面的定义。
  • UWP:用于开发跨设备类型,如:PC、平板、手机的通用 Windows 应用程序的平台。
  • Electron:本质上是把基于 HTML 这样的网页,打包成一个 Windows 上运行的客户端程序。
    • 这个技术体系,最初是用来开发 “atom” 文本编辑器,由 Github 官方开发的。
    • 后来 “atom” 就寄了,被微软搞的 “VSCode” 干趴了,之后 Github 被微软收购了。
    • 比较大的缺点,开发出来的程序,运行效率低于上面介绍的一些原生开发的技术体系。

Qt 虽然只是上述解决方案中的其中一个,仍然属于是其中非常能打的 (商业公司的产品,使用 Qt 非常多的,对应的就业岗位相比于其他的技术方案也是更多的),Qt 的优势,能够跨平台,不仅仅支持 Windows,也支持 Linux,还支持 Mac

四. 库和框架

  • 框架:本质上是一群大佬发明出来的,方便让咱们普通的小菜鸡程序员,写出来的代码也是比较靠谱的,防止程序员编写自由,灵活的代码 (越容易出错),框架,就是在限制程序员的自由。
  • 库和框架都是处于大佬吧一些代码写好了,让你去使用。库是被程序员调用的,程序员是主体。框架则是占主体,程序员配合框架,完善填充框架中留出的一些细节。

隔壁的 Java 对于框架,就更加依赖,例如:Spring,编写 C++ 代码,框架也是相当重要的,但是 C++ 的生态是割裂、零散的,不像 Java,存在一些巨无霸社区一统天下,C++ 委员会不作为,不同的开源社区/大厂,各自有各自的框架,各自为政,相比之下,像 Qt 这种能够被大家共同认可的框架,在整个 C++ 生态中是不多见的。

五. QT 是什么

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

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

Qt 的发展史:

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

Qt 支持的平台:

  • Windows 的各个版本。
  • Linux 各种发型版本。
    • Linux 主要是给服务器使用的,服务器不需要图形化界面。也存在一些 Linux 桌面环境,存在好几套桌面环境,但是 Linux 桌面使用过程中存在很多问题。
      • GNOME:基于 GTK 构建。
      • KDE:基于 Qt 构建。
    • TUI:基于命令行操作,门槛更高,效率也更高。
    • GUI:基于图形化界面,门槛低,效率也低。
  • Mac 系统。
    • Mac 电脑真说性价比,肯定远远不如 Windows 电脑。
  • 嵌入式系统。
    • Qt 实际开发中的一个主战场。
    • 日常使用的冰箱、洗衣机、路由器、投影仪等等,这些设备内部也有计算机,这种设备里面的计算机的硬件配置就不需要很高了,低配置低成本。
    • 有些嵌入式系统,也是需要运行图形化界面的程序的,这个时候 Qt 就可以起作用了,尤其是在一些工业设备上。
    • 当然在这个领域中,Qt 也受到了安卓系统开发图形化界面的挑战。

以后找 Qt 相关的工作,基本上是 Windows 系统 和 嵌入式系统 居多一些。

Qt 版本:

目前最新的版本是 Qt6 但是相对来说 Qt6 和 Qt5 之间的核心功能区别不大,并且企业中也仍然有大量的项目在使用 Qt5,在软件开发中,并不是越新就越好,在进行商业开发的时候,相比之下,引入了新的特性,不如优先确保不引入严重的问题。

另外 Qt 在发布的时候还提供了两种许可证:

  • 商业许可:开发者以商业目的使用 Qt 框架进行开发和发布软件的许可,开发者需要购买商业许可并按照相关规定使用 Qt 框架。商业许可提供了更多的功能和服务,适合于商业软件开发。
  • 开源许可:开发者以非商业目的使用 Qt 框架进行开发和发布软件的许可,开发者可以免费使用 Qt 框架,但需要遵守开源许可协议的要求,如在软件中包含 Qt 许可协议的声明等。

主要买的是技术支持,商业许可提供了更多的功能和服务,比如:Redhat (收费 Linux 发行版),Oracle (收费的数据库)

Qt 的优点

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

Qt 的应用场景

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

Qt 的发展前景及就业分析

Qt 是一个强大且广泛应用于跨平台软件开发的框架。它提供了丰富的工具和库,可用于开发高质量、高效率的图形用户界面 (GUI) 应用程序。并且可以在 Windows、Linux、Mac 等多种操作系统上运行。随着行业的发展,Qt 的重要性也逐渐体现出来,下面从行业发展方向、就业方面的发展前景以分析 Qt 的发展前景。

行业发展方向:

  • 物联网和嵌入式系统的发展:
    • 在当下的嵌入式和物联网行业中,Qt 的作用逐渐得到了体现,因为可以用它来开发具有 GUI 界面的嵌入式应用程序,这对于智能家居、汽车以及医疗设备等领域来说,具有非常重要的作用。
  • 自动驾驶和智能交通领域:
    • 现在很多的汽车都引入了自动驾驶的技术,而 Qt 在其中也有着广泛的应用,它可以开发车载嵌入式系统和用户界面程序。随着未来自动驾驶技术的发展,Qt 在这方面的需求也会不断地增多。
  • 游戏开发:
    • Qt 有一些非常重要的功能模块,例如 Qt 3D Studio,可以应用于游戏开发。未来游戏行业的持续发展,Qt 在游戏行业的发展将会越来越多。

就业方面的发展前景:

  • 广泛的就业机会:
    • Qt 在各个行业的应用逐渐广泛起来,对于掌握 Qt 开发能力的人员需求也在不断增加,因此在就业方面,相对比于其他行业来说,Qt 就业面更广,选择性更多。
  • 高薪水和职业发展机会:
    • Qt 作为一项专业技能,掌握此项技术的开发者获得的薪资报酬也是非常可观的,具有更多的职业发展机会。

总之就是,如果掌握了 Qt 开发技术,未来的发展前景还是非常不错的。

六. 环境搭建

Qt 开发环境,需要安装 3 个部分:

  • C++ 编译器
    • 例如:gcc、cl.exe,而不是 Visual Studio,编译器不等于集成开发环境 (IDE),编译器只是 IDE 调用的一个程序。
  • Qt SDK
    • 类似于软件开发工具包,提供一些编译工具、调试工具、构建工具等等。
    • 比如,Windows 版本 Qt SDK 力已经内置了 C++ 编译器,内置的编译器是mingw,类似 Windows 版本的 gcc/g++,要是想用 VS 内置的 cl.exe 作为编译器,需要配置很多额外的东西,容易出错。
    • 具体安装过程中,需要把对应的 C++ 编译器给一起勾选上。
  • Qt 集成开发环境
    • Qt 官方提供的 Qt Create
      • 最容易入门,最容易上手的方式,开箱即用,不需要任何额外的配置。
      • 虽然 Qt Create 使用的过程中存在不少 bug,且有些 bug 非常影响使用体验,但是整体来说用起来非常方便,比较适合初学者。
    • Visual Studio
      • 功能更强,但是需要配置额外的东西,更容易出错,有些公司开发商业 Qt 程序的时候,可能会使用 VS,需要给 VS 安装插件,并且需要把 Qt SDK 使用 VS 的编译器重新编译 (现在也方便一些,有预编译好的版本)
    • Eclipse
      • Eclipse 并非只是 Java IDE,本身是一个 IDE 平台,可以搭配不同的插件构成不同的 IDE
      • Eclipse 市场份额受到的冲击很大,存在重量级工具:JetBrains,存在轻量级工具:VSCode

说是安装三个东西,其实只要安装一个 Qt SDK,另外两个也就都有了。C++ 要么是标准库,要么是系统库,这是并不需要安装额外的 SDK,但是需要运用到第三方库,安装 SDK 是非常重要的。

1. Qt SDK 的下载和安装

Qt 下载官网:http://download.qt.io/archive/qt/

这里我们选择安装 Qt 5.14.2 的版本

在这里插入图片描述

2. 配置环境变量

  • 找到 QT 的安装路径,复制 “bin” 路径:
    在这里插入图片描述
  • “此电脑” ——> 鼠标右键,“属性” ——> “高级系统设置” ——> “环境变量” ——> 找到系统变量中的 “Path”,点击 ——> “编辑”

在这里插入图片描述

  • “新建” ——> 填入 “bin” 路径 ——> “确定”

在这里插入图片描述

  • 注意:在关掉所有窗口时,一定要点击 “确定”,否则上述配置无效。
  • 安装软件的时候,所在的目录,不要带英文,不要带特殊符号,也不要带空格!
  • MinGW 7.3.0 64-bit 是 Qt SDK 中内置的 C++ 编译器,就是一个 Windows 版本的 gcc/g++
  • Windows 也是支持多用户的操作系统,都是自己的电脑,所有将路径复制到用户变量还是系统变量都无所谓。
  • Linux 也有一个环境变量,叫做 PATH,输入的命令,就会去 PATH 下对应的目录中查找对应的程序。
  • 此处需要把 Qt SDK 中的某个目录加入到 Path 环境变量中,要添加的目录,是这个包含了一大堆动态库和 exe 的目录。

为什么要配置这个环境变量?

  • 让操作系统 / Qt Create 工具,能够找到 Qt SDK 中提供的 exe
  • 也是运行 Qt 程序的时候,能够找到对应的 .dll 动态库。
  • 环境变量,也可以理解为简单的 “进程通信” 机制。

此时你的电脑中将存在以下四种 Qt SDK 自带的一些工具程序,也是在我们开发中需要关注的

在这里插入图片描述

  • Assistant:Qt 自带的离线版本的官方英文文档。
    • 虽然 Qt 也有中文文档 (非官方的),但是阅读英文文档是程序员的必备技能。
  • Designed:Qt 设计师。
    • 图形化的设计界面的工具,通过拖拽控件的方式来快速生成界面,后面经常使用,但是是搭配 Qt Create 来使用。
  • Linguist:Qt 语言家。
    • 对国际化进行支持,有的时候写的程序需要和国际接轨。
  • Qt Create:Qt 的集成开发环境,学习 Qt 主要使用的工具。

七. Qt Creator

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

在这里插入图片描述

1. 新建项目

打开 Qt Creator,在菜单栏中选中 “文件” ——> “新建文件或项目” 或者 使用快捷键:Ctrl + n:

在这里插入图片描述

2. 选择项目模板

在这里插入图片描述

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

在这里插入图片描述

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

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

选择不同的项目模板,Qt Creator 就会在后续项目创建好了之后生成不同的基础代码。

3. 选择项目路径

在这里插入图片描述

4. 选择构建系统

选择 Qt 项目的构建系统,使用默认的 “qmake” 即可。

在这里插入图片描述

通过 Qt 写的程序,涉及到一系列的 “元编程” 技术,通过代码来生成代码,Qt 框架会在编译的时候,自动先调用一系列的生成工具,基于你自己写的代码,生成一系列的其它的 C++ 代码,最终编译的代码也是最后生成的这些代码。

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

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

Qt 官方声明,因市场原因,弃用 Qbs,对于 Qt 用户来说,qmake 是当前使用最广泛的构建工具,CMake 其次。

5. 填写类信息设置界面

在这里插入图片描述

使用 Qt Create 创建项目,会自动的生成一些代码出来,生产的代码就包含一个类,此处就是要选择这个自动生成的来的父类是谁。

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

  • QMainWindows:
    • 主窗口类,一般用于较为复杂的应用程序,除了中央客户区界面,还包括菜单栏、工具栏、状态栏以及多个可停靠的工具对话框等。
  • QWidget:
    • 最简单、最基本的窗体程序,里面可以放置多个控件实现程序功能。
  • QDialog
    • 基于对话框的程序,对话框一般用于弹窗,也可以用于主界面显示,对话框是从 QWidget 继承而来的,并丰富了一些功能,如模态显示和返回值等。

上述三个类之间的关系如下图:

在这里插入图片描述

Qt 中内置的类都是以 Q 前缀开头的,此处生成的文件名和类名是相关联的,但并非强制 (推荐一样)

其中 From file 非常关键,Qt 中创建图形化界面的程序,有两种方式:

  • 直接通过 C++ 代码的方式创建界面。
  • 通过 From file,以图形化的方式来生成界面。
    • 此时就可以使用 Qt Designer,或者直接使用 Qt Create 来编译这个 UI 文件,从而以图形化的方式快速方便的生成图形化界面。

6. 选择语言和翻译文件

在这里插入图片描述

此处选择的语言是 “汉语”、“英语” 这样的语言,而不是 “编程语言”,由于我们暂时不考虑国际化文题,直接下一步即可。

7. 选择 Qt 套件

在这里插入图片描述

默认只有一个 “Desktop Qt 5.14.2 MinGW 64-bit”,如果安装配置了多个 Qt 套件,就可以都选上。

  • Qt 套件是指 Qt 程序从编译链接到运行环境的全部工具和 Qt 类库的集合,对于 MinGW 版本 Qt 程序生成和调试,至少需要 MinGW 中的编译器 g++ (自动调用链接器)、g++ 配套的基础库、调试器 gdb 还有使用 MinGW 环境编译而成的 Qt 类库自身。默认情况下,在上面 Kit Selection 里选中全部套件。

8. 选择版本控制系统

在这里插入图片描述

如果想把代码提交到 gitee 或者 github,可以在此处选择 git 作为版本控制系统,如果没有就不需要选择了。

八. 项目文件解析

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

main.cpp 文件

在这里插入图片描述

  • 命令行参数:argc 和 argv
  • QApplication 对象:编写一个 Qt 图形化界面程序,一定需要的对象。
  • Widget 对象:创建项目时,填写的生产类的类名。
  • Widget 的父类是 QWeight,.show 和 .hide 方法都是 QWeight 提供的。
    • .show 方法:让控件显示出来。
    • .hide 方法: 让控件隐藏起来。
  • QApplication 对象的 .exec 方法:让程序执行起来。

之前 Linux 中,也学过留个函数 (本质上是一个函数),叫做 exec*,进程程序替换,把可执行文件中的代码和数据,替换到当前进程中,当前 Qt 中的 exec 和 Linux 中的 exec 没有任何关系,只是名字恰好一样而已。例如:操作系统的栈/堆,和数据结构的栈/堆,是完全不一样的概念。

weiget.h 文件

在这里插入图片描述

  • 条件编译 + 宏:防止头文件被重复包含,更推荐 #pragma once
  • Weiget 继承 QWeight:创建项目时,选择的父类就是 QWeight,是 Qt SDK 内置的,要想使用这个类,就需要包含对应的头文件 #include <QWeight>
    • Qt 的设定:使用 Qt 中内置的类,包含的头文件的名字就是和类名是一致的。
    • 当然,也不是用到的所有的 Qt 的类都需要显示包含头文件,C++ 中的头文件可能是间接包含的,如果这个类提示找不到定义啥的,手动包含一下头文件即可。
  • Q_OBJECT:是一个 Qt 内置的宏,这个宏展开之后,就会生成一大堆代码。
    • Qt 中有一个非常核心的机制 “信号和槽”,如果某个类想要使用该机制,就需要引入这个宏。
  • QWeight *parent:Qt 引入了 “对象树” 机制。
    • 创建 Qt 的对象,就可以把这个对象给挂到对象树上,往树上挂的时候就需要指定 “父节点”,该树是一个普通的 N 叉树。
  • Ui::Weight *ui:这个对象和 form file 密切相关,也就是 widget.ui 文件。
    • 这个指针是用前面声明的 namespace Ui 里的 Widget 类定义的,所以指针 ui 是指向可视化设计的界面,后面要访问界面上的组件,都需要通过这个指针 ui 去访问。

weiget.cpp 文件

widget.cpp 文件是类 Widget 的实现代码,所有在窗体上要实现的功能添加在此文件中。

在这里插入图片描述

widget.ui 文件

当前直接双击 ui 文件,此时 Qt Create 就会调用 Qt Designer,打开 ui 文件,得到图形化的界面编辑器,如下图:

在这里插入图片描述

  • 此时再点击左侧边栏的 “编辑” 按钮,此时显示的内容就是 .ui 文件的本体了,这个格式称为 xml 格式,与 html 非常类似,都是使用成对的标签来表示数据。
    • xml 这里的标签,有哪些标签,都表示什么含义,这个是程序员自己定义的,此处看到的这些标签,就是开发 Qt 的大佬们来约定的,我们不需要关注,只需要 ui 文件本质上就是一个 xml 即可。
    • html 虽然也是通过标签来表示,html 的标签都是固定的,每个标签是啥含义,有一个专门的标准委员会约定的,所有的浏览器也是按照同样的规则来解释的。
    • 此处约定的 xml 标签的含义,就类似于 Linux 网络原理中学过的一个话题, “自定义应用层协议”。
    • Qt 中使用 xml 文件就是去描述程序的界面是啥样的,进一步的 qmake 会调用相关的工具,依据这个 xml 文件生成的一些 C++ 代码,从而把完整的界面构建出来。

在这里插入图片描述

  • widget.ui 是窗体界面定义文件,是一个 xml 文件,定义了窗口上的所有组件的属性设置、布局,及其信号与槽函数的关联等。用 UI 设计器 (Qt Designer) 可视化设计的界面都由 Qt 自动解析,并以 xml 文件的形式保存下来。在设计界面时,只需在 UI 设计器里进进可视化设计即可,而不用管 widget.ui 文件是怎么生成的。

.pro 文件

  • .pro 是 Qt 项目的工程文件,也是 qmake 工具构建时候的重要依据,是 qmake 自动生成的,用于生成 Makefile 的配置文件。
    • .pro 类似于之前 Linux 学过的 Makefile 文件,Makefile 其实是一个非常古老的技术。
    • qmake 搭配 .pro 起到的作用就和 Makefile 是类似的。
    • Qt Create 把这个过程中编译的细节都封装好了,不需要过度关注,只需要点击运行按钮,就直接编译运行了。

在这里插入图片描述

上面看到的 .h .cpp .pro .ui 都是源代码,如果编译运行 Qt 项目,构建的过程中还会生成一些中间文件,打开文件资源管理器,看看项目中对应的目录是什么样子的:

在这里插入图片描述

在这里插入图片描述

在运行一次程序之后,就会在项目目录并列的地方,多出来一个 “build-xxx” 目录,这个目录里面就是项目运行过程中,生成的一些临时文件。

在这里插入图片描述

在这里插入图片描述

编译 Qt 程序,还是会用到 Makefile 文件的,只不过这个 Makefile 文件不需要手动写,而是 qmake 自动生成的,ui_weight.h 文件就是 weight.ui xml 文件生成的 .h 文件,代码如下:

在这里插入图片描述

进入 debug 目录,这里的 exe 就是最终生成的可执行程序,如果直接运行,效果就是和之前在 Qt Create 中运行是相同的效果。

在这里插入图片描述

相关文章:

  • Xilinx FPGA MIPI DSI TX Subsystem 仿真笔记
  • 【Langchain】构建RAG基本流程
  • QT使用AES加解密,openssl及QCA问题记录
  • 综合笔试知识点
  • 文字转语音
  • 关于汉语普通话元音音位最好归纳为几个的问题
  • 能上Nature封面的idea!强化学习+卡尔曼滤波
  • 【Electron】应用打包教程(包含 C++ 后端 + 前端)
  • Spring AI与Spring Modulith核心技术解析
  • springboot的test模块使用Autowired注入失败
  • 【Linux】Linux进程间通讯-共享内存
  • FSMC扩展外部SRAM
  • Linux Gnome壁纸
  • 言思集交流社区(SpringBoot)
  • Linux中su与sudo命令的区别:权限管理的关键差异解析
  • CMake基础:构建流程详解
  • fast-reid部署
  • Linux 系统、代码与服务器进阶知识深度解析
  • 使用 SAM + YOLO + ResNet 检测工业开关状态:从零到部署
  • CMake检测C编译器标志功能
  • 价钱网站建设/最大的推广平台
  • 作作网站/优秀网站设计网站
  • 公司内部网站一般都怎么维护/谷歌aso优化
  • 河北建筑工程网/上海最大的seo公司
  • 嘉兴高端建站公司/360搜索引擎优化
  • 网站是否wordpress/餐饮培训