【Qt】背景介绍
行业介绍
在我们的互联网中的核心岗位主要有以下几种
- 开发(程序员)
- 测试
- 运维(管理机器)
- 产品经理(非技术岗位,提出需求)
而我们这里主要关注的是开发方向
开发岗位又分很多方向:
- 后端开发
- 前端开发
- 网页前端开发(做网页的)
- 桌面应用开发(做电脑上的应用程序,Qt就是用来做桌面应用陈程序的,也叫客户端开发)
- 移动应用开发(做手机上的引用程序)
- 算法工程师
- 游戏开发
- ......
什么是客户端
客户端的介绍
所谓客户端就是直接和用户打交道的一端从程序,就必然chrome,cctalk
,......。
服务器:就是站在客户端背后的程序。
但是不是所有的应用程序都需要服务器做支撑的,比如画图板,计算器,也是直接和客户直接打交道,但是不需要后端服务的支撑,这些也叫做是客户端程序。
而Qt
其实准确来说是桌面应用开发(也就是写电脑上的程序的),Qt
无法开发网页前端,也不能开发移动应用(但是目前的Qt
官方也是支持移动应用开发了,但是目前并没有出现知名的商用移动应用程序使用Qt
编写的)。
客户端的风格
客户端的任务就是编写和用户交互的界面,和用户交互的界面有两种风格:
- 命令行界面/终端界面------
TUI
- 图形化界面------
GUI
Qt就是用来桌面开发的GUI程序的一套框架。
GUI开发的各种技术方案
在Windows
编写GUI
程序,也是有很多中方案解决的,Qt
只是其中的一种方案。而windows
主流的图形化界面开发有:
基于C/C++搭建的一些GUI开发技术体系:
- Windows API :
windows
系统提供的原生API
(这个开发起来比较原生,也比较繁琐) - MFC :(上个世纪90年代诞生的)通过面向对象,对
windows API
进行封装。(但是目前已经不进行维护了) - Qt:(1991年左右诞生的)目前也是很有生命力的。
其他:
- GTK,WxWidget......这些也是一些图形化界面开发的技术体系。
- 有微软开发的变成语言
C#(C sharp)Windows Forms
给(.net)
量身定做的的一套GUI
技术体系。 - WPF,UWP 这些可以说是
windows Forms
的一些升级版本。
开源社区
- Electron:本质是基于HTML这样的网页,打包成一个windows上运行的客户端程序,这个最初是用来开发"atom"文本编辑器的,但是后期被微软的VSCode给替代了,但那时VSCode其实也是基于Electron的。但是有个比较大的缺点,就是有Electron开发出来的应用程序的效率低于以上的的开发技术体系。
而各种的GUI
技术中Qt
其实是比较主流的,而Qt
的优势之一就是Qt
支持跨平台,不经支持windows
,也可以支持Linux
,还支持Mac
,这一点就是比较香的。而这一优点直接让Qt
火爆了。所以当前的公司开发GUI
技术,首选的基本上都是Qt
的。
什么是框架
Qt是一个跨平台的C++图形用户界面应用程序框架。
所谓框架其实是一个"半成品",帮助项目搭建"骨架",并提供丰富的组件库,开发人员只需增加一些内容或调用一些提供好的组件就可以完成系统。而框架也是用来限制程序员的自由,因为在软件开发中谈到自由,灵活的其实是贬义词,因为这意味着越容易出错,所以为了减少出错率就有大佬为我们提前写好了框架。
框架和库其实优点相似的,都是由大佬提前写好的,让我们去使用的,但是本质上还是有区别的。库是被程序员调用的,主体是程序员,但是框架的主体是框架本身,是程序员配合框架完善,填充框架留下的一些细节。
Qt的发展历程
- 1991年
Qt
最早由奇趣科技开发; - 1996年进⼊商业领域,它也是⽬前流⾏的
Linux
桌⾯环境KDE
的基础; - 2008年奇趣科技被诺基亚公司收购,
Qt
成为诺基亚旗下的编程⼯具; - 2012年
Qt
⼜被Digia
公司收购; - 2014年4⽉跨平台的集成开发环境
QtCreator3.1.0
发布,同年5⽉20⽇发布了Qt5.3正式版,至此Qt实现了对IOS、Android、Embedded
等各平台的全⾯⽀持
Qt支持的平台
Windows‒XP、Vista、Win7、Win8、Win2008、Win10
Linux
(各种发行版),尤其是Linux
中的KDE
桌面基于Qt
构建的。Macintosh‒MacOSX
Embedded
‒有帧缓冲⽀持的嵌⼊式Linux
平台,Windows CE
Android
Qt的版本后优点
版本:
目前最新的版本是Qt6
.但是相对来说Qt6
和Qt5
之间的核心功能区别不大.并且企业中也仍然有大量的项目在使⽤Qt5
.因此咱们仍然使⽤Qt5
版本来进⾏介绍.另外Qt
在发布的时候还提供了两种许可证.
- 商业许可:开发者以商业⽬的使⽤
Qt
框架进⾏开发和发布软件的许可,开发者需要购买商业许可并按照相关规定使⽤Qt框架。商业许可提供了更多的功能和服务,适合于商业软件开发。 - 开源许可:开发者以⾮商业⽬的使⽤
Qt
框架进⾏开发和发布软件的许可,开发者可以免费使⽤Qt
框架,但需要遵守开源许可协议的要求,如在软件中包含Qt
许可协议的声明等。
优点:
- 跨平台,几乎支持所有的平台;
- 接⼝简单,容易上手,学习
Qt
框架对学习其他框架有参考意义。 - ⼀定程度上简化了内存回收机制;
- 开发效率高,能够快速的构建应⽤程序。
- 有很好的社区氛围,市场份额在缓慢上升。
- 可以进行嵌入式开发。
Qt的发展前景
Qt
是一个强大且广泛应用于跨平台软件开发的框架。它提供丰富的工具和库,可用于开发高质量,高效率的图形用户界面(GUI)
应用程序。并可以在windows,linux,MacOS
等多种操作做系统上运行。
行业发展方向:
- 物联网
(IoT)
和嵌入式系统的发展:
在当下的嵌入式和物联网行业中,Qt
的作用逐渐得到了体现,因为可以用它来开发具有GUI
界⾯的嵌入式应用程序,这对于智能家居、汽车以及医疗设备等领域来说,具有非常重要的作用。 - 自动驾驶和智能交通领域:
现在很多的汽车都引入了自动驾驶的技术,而Qt
在其中也有着⼴泛的应用,它可以开发车载嵌入式系统和用户界面程序。随着未来自动驾驶技术的发展,Qt
在这方面的需求也会不断地增多。 - 游戏开发:
Qt
有⼀些非常重要的功能模块,例如Qt 3D Studio
,可以应用于游戏开发。未来游戏行业的持续发展,Qt
在游戏行业的发展将会越来越多