文章目录
- [一. 行业岗位介绍](#一. 行业岗位介绍)
- [二. 什么是客户端?](#二. 什么是客户端?)
- [三. GUI 开发的各自技术方案](#三. GUI 开发的各自技术方案)
- [四. 什么是框架?](#四. 什么是框架?)
- [五. Qt 的发展史](#五. Qt 的发展史)
- [五. Qt 支持的系统](#五. Qt 支持的系统)
- [六. Qt 的优点](#六. Qt 的优点)
一. 行业岗位介绍
二. 什么是客户端?
既然 Qt 是用来进行客户端开发的,那我们就要了解什么是客户端
-
客户端:直接和客户交互的程序,如 Chrome、Steam、qq音乐等 APP
-
服务器:站在客户端背后的男人,用来j具体完成用户提出的服务
虽然大部分的客户端程序,是需要有背后的服务器来做支持的,但是确实也有些程序,是不需要服务器的,这样的程序(比如画图板,计算器...)同样也是直接和客户打交道,也可以称为 "客户端程序"。
客户端开发的重要任务是编写和用户交互的界面,而和用户交互的界面,有两种典型的风格:
- 命令行/终端界面(TUI),这个一般是给专业开发人员用的
- 图形化界面(GUI),这个是给普通用户使用的
Qt 就是用来编写桌面 GUI 程序的一套框架
三. GUI 开发的各自技术方案
在 Windows 下编写 GUI 程序,也是有很多种解决方法的,Qt 只是其中一种,在 Windows 下还有如下方案,可以用来开发 GUI:
- Windows API:Windows 系统提供的原生 API,开发起来非常原始,且非常繁琐
- MFC:上世纪 90 年代推出,影响力非常深远
- Qt:1991 年左右诞生(和 MFC 不同,MFC 早都不更新了,而 Qt 还在不断推陈出新,至今仍然非常有生命力)
- Windows Forms:微软给 C#(.net) 量身定做的一套开发 GUI 技术体系
- WPF、UWP
- Electron:本质是把基于 HTML 这样的网页,打包成一个 Windows 上运行的客户端程序(这个技术体系,最初是用来开发 "atom" 文本编辑器的,后给就寄了,被微软的 VSCode 给干趴)
四. 什么是框架?
具体来说,Qt 是一个跨平台的 C++ 图形用户界面应用程序框架
框架,本质是一群大佬发明出来的,方便让我们菜鸡程序员写出来的代码比较靠谱。在 IT 行业中,越自由、灵活,就越容易出错,框架就是在限制程序员的自由。
库和框架,都是属于大佬把一些代码写好了,让你去使用
- 库:被程序员调用(程序员是主体)
- 框架:框架是主体,程序员配合框架,完善填充框架中留出的一些细节(框架是主体)
PS:隔壁 Java 对于框架(比如 Spring)更加依赖,而编写 C++ 代码,框架也很重要。C++ 的生态是割裂、离散的;不像隔壁的 Java,存在一些巨无霸社区,一统天下;C++ 不同的开源社区/大厂,各自有各自的框架,各自为阵;相比之下,像 Qt 这种,能够被大家共同认可的框架,在整个 C++ 生态中是不多见的。
五. 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 等各平台的全⾯⽀持。
五. Qt 支持的系统
1)Windows(各个版本都有支持)
2)Linux(各种发行版,尤其是 Linux 中的 KDE 桌面就是基于 Qt 构建的)
3)Mac 系统
4)嵌入式系统:日常使用的冰箱、洗衣机、路由器、投影仪等,这些设备内部也有计算机(但是配置不需要很高),有些嵌入式系统,也需要运行图形化界面的程序,这个时候 Qt 就可以起作用了,尤其是在一些工业设备上,当然,在这个领域,Qt 也受到了安卓的挑战。
六. Qt 的优点
• 跨平台,⼏乎⽀持所有的平台;
• 接⼝简单,容易上⼿,学习 QT 框架对学习其他框架有参考意义。
• ⼀定程度上简化了内存回收机制;
• 开发效率⾼,能够快速的构建应⽤程序。
• 有很好的社区氛围,市场份额在缓慢上升。
• 可以进⾏嵌⼊式开发。