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

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

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

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

• 可以进⾏嵌⼊式开发。

相关推荐
uppp»19 分钟前
深入理解 Java 反射机制:获取类信息与动态操作
java·开发语言
玩电脑的辣条哥2 小时前
Python如何播放本地音乐并在web页面播放
开发语言·前端·python
ll7788115 小时前
LeetCode每日精进:20.有效的括号
c语言·开发语言·算法·leetcode·职场和发展
Jackson@ML7 小时前
Python数据可视化简介
开发语言·python·数据可视化
赵琳琅7 小时前
Java语言的云计算
开发语言·后端·golang
lly2024067 小时前
jQuery 杂项方法
开发语言
赵琳琅7 小时前
MDX语言的安全开发
开发语言·后端·golang
开开又心心的学嵌入式7 小时前
C语言——指针进阶应用
c语言·开发语言
开开又心心的学嵌入式7 小时前
C语言——指针基础知识
c语言·开发语言
lonelyhiker7 小时前
javascript的原型链
开发语言·javascript·原型模式