【Qt】初识Qt

文章目录

  • [一. 行业岗位介绍](#一. 行业岗位介绍)
  • [二. 什么是客户端?](#二. 什么是客户端?)
  • [三. GUI 开发的各自技术方案](#三. GUI 开发的各自技术方案)
  • [四. 什么是框架?](#四. 什么是框架?)
  • [五. Qt 的发展史](#五. Qt 的发展史)
  • [五. Qt 支持的系统](#五. Qt 支持的系统)
  • [六. Qt 的优点](#六. Qt 的优点)

一. 行业岗位介绍

二. 什么是客户端?

既然 Qt 是用来进行客户端开发的,那我们就要了解什么是客户端

  • 客户端:直接和客户交互的程序,如 Chrome、Steam、qq音乐等 APP

  • 服务器:站在客户端背后的男人,用来j具体完成用户提出的服务

虽然大部分的客户端程序,是需要有背后的服务器来做支持的,但是确实也有些程序,是不需要服务器的,这样的程序(比如画图板,计算器...)同样也是直接和客户打交道,也可以称为 "客户端程序"。

客户端开发的重要任务是编写和用户交互的界面,而和用户交互的界面,有两种典型的风格:

  • 命令行/终端界面(TUI),这个一般是给专业开发人员用的
  • 图形化界面(GUI),这个是给普通用户使用的

Qt 就是用来编写桌面 GUI 程序的一套框架

三. GUI 开发的各自技术方案

在 Windows 下编写 GUI 程序,也是有很多种解决方法的,Qt 只是其中一种,在 Windows 下还有如下方案,可以用来开发 GUI:

  1. Windows API:Windows 系统提供的原生 API,开发起来非常原始,且非常繁琐
  2. MFC:上世纪 90 年代推出,影响力非常深远
  3. Qt:1991 年左右诞生(和 MFC 不同,MFC 早都不更新了,而 Qt 还在不断推陈出新,至今仍然非常有生命力)
  4. Windows Forms:微软给 C#(.net) 量身定做的一套开发 GUI 技术体系
  5. WPF、UWP
  6. 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 框架对学习其他框架有参考意义。

• ⼀定程度上简化了内存回收机制;

• 开发效率⾼,能够快速的构建应⽤程序。

• 有很好的社区氛围,市场份额在缓慢上升。

• 可以进⾏嵌⼊式开发。

相关推荐
姑苏风1 分钟前
《Kotlin实战》-附录
android·开发语言·kotlin
奋斗的小花生1 小时前
c++ 多态性
开发语言·c++
魔道不误砍柴功1 小时前
Java 中如何巧妙应用 Function 让方法复用性更强
java·开发语言·python
闲晨1 小时前
C++ 继承:代码传承的魔法棒,开启奇幻编程之旅
java·c语言·开发语言·c++·经验分享
老猿讲编程1 小时前
一个例子来说明Ada语言的实时性支持
开发语言·ada
Chrikk2 小时前
Go-性能调优实战案例
开发语言·后端·golang
幼儿园老大*2 小时前
Go的环境搭建以及GoLand安装教程
开发语言·经验分享·后端·golang·go
canyuemanyue2 小时前
go语言连续监控事件并回调处理
开发语言·后端·golang
杜杜的man3 小时前
【go从零单排】go语言中的指针
开发语言·后端·golang
Mr.Q3 小时前
Qt多边形填充/不填充绘制
qt