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

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

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

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

• 可以进⾏嵌⼊式开发。

相关推荐
Source.Liu4 分钟前
【BuildFlow & 筑流】品牌命名与项目定位说明
c++·qt·rust·markdown·librecad
励志不掉头发的内向程序员17 分钟前
【Linux系列】掌控 Linux 的脉搏:深入理解进程控制
linux·运维·服务器·开发语言·学习
梵得儿SHI24 分钟前
Java 反射机制深度解析:从对象创建到私有成员操作
java·开发语言·class对象·java反射机制·操作类成员·三大典型·反射的核心api
沐知全栈开发27 分钟前
Foundation 折叠列表
开发语言
..Cherry..42 分钟前
【java】jvm
java·开发语言·jvm
unicrom_深圳市由你创科技1 小时前
工业上位机,用Python+Qt还是C#+WPF?
python·qt·c#
冷冷的菜哥1 小时前
go邮件发送——附件与图片显示
开发语言·后端·golang·邮件发送·smtp发送邮件
lly2024061 小时前
Linux 文件与目录管理
开发语言
计算机毕业设计木哥1 小时前
计算机毕业设计选题推荐:基于SpringBoot和Vue的爱心公益网站
java·开发语言·vue.js·spring boot·后端·课程设计
一晌小贪欢1 小时前
Python爬虫第7课:多线程与异步爬虫技术
开发语言·爬虫·python·网络爬虫·python爬虫·python3