【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 框架对学习其他框架有参考意义。

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

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

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

• 可以进⾏嵌⼊式开发。

相关推荐
吃海鲜的骆驼12 分钟前
四、JVM原理-4.1、JVM介绍
java·开发语言·jvm·面试
pjx98713 分钟前
JVM 执行引擎详解:理论与实践
开发语言·jvm
白茶等风1213821 分钟前
C#_结构(Struct)详解
开发语言·c#
ephemerals__24 分钟前
【c++】STL简介
开发语言·c++
赤橙红的黄1 小时前
代理模式-动态代理
java·开发语言·代理模式
Au_ust1 小时前
go的结构体、方法、接口
开发语言·golang
-VE-1 小时前
模板初阶(c++)
开发语言·c++
shigen011 小时前
结合HashMap与Java 8的Function和Optional消除ifelse判断
java·开发语言
CN.LG1 小时前
浅谈Python之协程
开发语言·python
国中之林2 小时前
【C++ Primer Plus习题】17.5
开发语言·c++·学习·刷题