【Qt】背景介绍

【Qt】背景介绍

行业介绍

在我们的互联网中的核心岗位主要有以下几种

  1. 开发(程序员)
  2. 测试
  3. 运维(管理机器)
  4. 产品经理(非技术岗位,提出需求)

而我们这里主要关注的是开发方向

开发岗位又分很多方向:

  • 后端开发
  • 前端开发
    • 网页前端开发(做网页的)
    • 桌面应用开发(做电脑上的应用程序,Qt就是用来做桌面应用陈程序的,也叫客户端开发
    • 移动应用开发(做手机上的引用程序)
  • 算法工程师
  • 游戏开发
  • ......

什么是客户端

客户端的介绍

所谓客户端就是直接和用户打交道的一端从程序,就必然chrome,cctalk,......。

服务器:就是站在客户端背后的程序。

但是不是所有的应用程序都需要服务器做支撑的,比如画图板,计算器,也是直接和客户直接打交道,但是不需要后端服务的支撑,这些也叫做是客户端程序。

Qt其实准确来说是桌面应用开发(也就是写电脑上的程序的),Qt无法开发网页前端,也不能开发移动应用(但是目前的Qt官方也是支持移动应用开发了,但是目前并没有出现知名的商用移动应用程序使用Qt编写的)。

客户端的风格

客户端的任务就是编写和用户交互的界面,和用户交互的界面有两种风格:

  • 命令行界面/终端界面------TUI
  • 图形化界面------GUI

Qt就是用来桌面开发的GUI程序的一套框架。

GUI开发的各种技术方案

Windows编写GUI程序,也是有很多中方案解决的,Qt只是其中的一种方案。而windows主流的图形化界面开发有:
基于C/C++搭建的一些GUI开发技术体系:

  • Windows APIwindows系统提供的原生API(这个开发起来比较原生,也比较繁琐)
  • MFC :(上个世纪90年代诞生的)通过面向对象,对windows API进行封装。(但是目前已经不进行维护了)
  • Qt:(1991年左右诞生的)目前也是很有生命力的。

其他:

  • GTK,WxWidget......这些也是一些图形化界面开发的技术体系。
  • 有微软开发的变成语言C#(C sharp)Windows Forms(.net)量身定做的的一套GUI技术体系。
  • WPF,UWP 这些可以说是windows Forms的一些升级版本。

开源社区

  • Electron:本质是基于HTML这样的网页,打包成一个windows上运行的客户端程序,这个最初是用来开发"atom"文本编辑器的,但是后期被微软的VSCode给替代了,但那时VSCode其实也是基于Electron的。但是有个比较大的缺点,就是有Electron开发出来的应用程序的效率低于以上的的开发技术体系。

而各种的GUI技术中Qt其实是比较主流的,而Qt的优势之一就是Qt支持跨平台,不经支持windows,也可以支持Linux,还支持Mac,这一点就是比较香的。而这一优点直接让Qt火爆了。所以当前的公司开发GUI技术,首选的基本上都是Qt的。

什么是框架

Qt是一个跨平台的C++图形用户界面应用程序框架。

所谓框架其实是一个"半成品",帮助项目搭建"骨架",并提供丰富的组件库,开发人员只需增加一些内容或调用一些提供好的组件就可以完成系统。而框架也是用来限制程序员的自由,因为在软件开发中谈到自由,灵活的其实是贬义词,因为这意味着越容易出错,所以为了减少出错率就有大佬为我们提前写好了框架。

框架和库其实优点相似的,都是由大佬提前写好的,让我们去使用的,但是本质上还是有区别的。库是被程序员调用的,主体是程序员,但是框架的主体是框架本身,是程序员配合框架完善,填充框架留下的一些细节。

Qt的发展历程

  • 1991年Qt最早由奇趣科技开发;
  • 1996年进⼊商业领域,它也是⽬前流⾏的Linux桌⾯环境KDE的基础;
  • 2008年奇趣科技被诺基亚公司收购,Qt成为诺基亚旗下的编程⼯具;
  • 2012年Qt⼜被Digia公司收购;
  • 2014年4⽉跨平台的集成开发环境QtCreator3.1.0发布,同年5⽉20⽇发布了Qt5.3正式版,至此Qt实现了对IOS、Android、Embedded等各平台的全⾯⽀持

Qt支持的平台

  • Windows‒XP、Vista、Win7、Win8、Win2008、Win10
  • Linux(各种发行版),尤其是 Linux 中的KDE 桌面基于Qt构建的。
  • Macintosh‒MacOSX
  • Embedded‒有帧缓冲⽀持的嵌⼊式Linux平台,Windows CE
  • Android

Qt的版本后优点

版本:

目前最新的版本是Qt6.但是相对来说Qt6Qt5之间的核心功能区别不大.并且企业中也仍然有大量的项目在使⽤Qt5.因此咱们仍然使⽤Qt5版本来进⾏介绍.另外Qt在发布的时候还提供了两种许可证.

  • 商业许可:开发者以商业⽬的使⽤Qt框架进⾏开发和发布软件的许可,开发者需要购买商业许可并按照相关规定使⽤Qt框架。商业许可提供了更多的功能和服务,适合于商业软件开发。
  • 开源许可:开发者以⾮商业⽬的使⽤Qt框架进⾏开发和发布软件的许可,开发者可以免费使⽤Qt框架,但需要遵守开源许可协议的要求,如在软件中包含Qt许可协议的声明等。

优点:

  • 跨平台,几乎支持所有的平台;
  • 接⼝简单,容易上手,学习Qt框架对学习其他框架有参考意义。
  • ⼀定程度上简化了内存回收机制;
  • 开发效率高,能够快速的构建应⽤程序。
  • 有很好的社区氛围,市场份额在缓慢上升。
  • 可以进行嵌入式开发。

Qt的发展前景

Qt是一个强大且广泛应用于跨平台软件开发的框架。它提供丰富的工具和库,可用于开发高质量,高效率的图形用户界面(GUI)应用程序。并可以在windows,linux,MacOS等多种操作做系统上运行。

行业发展方向:

  • 物联网(IoT)和嵌入式系统的发展:
    在当下的嵌入式和物联网行业中,Qt的作用逐渐得到了体现,因为可以用它来开发具有GUI界⾯的嵌入式应用程序,这对于智能家居、汽车以及医疗设备等领域来说,具有非常重要的作用。
  • 自动驾驶和智能交通领域:
    现在很多的汽车都引入了自动驾驶的技术,而Qt在其中也有着⼴泛的应用,它可以开发车载嵌入式系统和用户界面程序。随着未来自动驾驶技术的发展,Qt在这方面的需求也会不断地增多。
  • 游戏开发:
    Qt有⼀些非常重要的功能模块,例如Qt 3D Studio,可以应用于游戏开发。未来游戏行业的持续发展,Qt在游戏行业的发展将会越来越多
相关推荐
循环渐进Forward5 分钟前
【C++笔试强训】如何成为算法糕手Day2
开发语言·数据结构·c++·算法·哈希算法·笔试·牛客
向上爬的卓卓卓1 小时前
C++【类和对象】(构造函数与析构函数)
java·开发语言·c++·visual studio
mariokkm2 小时前
Python一分钟:装饰器
开发语言·python
Pandaconda2 小时前
【计算机网络 - 基础问题】每日 3 题(十六)
开发语言·经验分享·笔记·后端·计算机网络·面试·职场和发展
好度2 小时前
python网站创建001:内容概览
开发语言·python
5G微创业2 小时前
免费制作证件照的小程序源码
java·开发语言·windows
jingling5552 小时前
后端开发刷题 | 最小的K个数(优先队列)
java·开发语言·数据结构·算法
终末圆2 小时前
探索RESTful风格的网络请求:构建高效、可维护的API接口【后端 20】
java·开发语言·数据库·后端·mysql·算法·restful
晨曦_子画3 小时前
智能网络载入:通过 AI 和自动化彻底改变连接
服务器·开发语言·ai
请揣满RMB3 小时前
Qt窗口——QMenuBar
开发语言·qt·命令模式