当前位置: 首页 > news >正文

Qt从零开始(1)了解

文章目录

  • 1. Qt技术介绍
  • 2. 开发GUI的选择
  • 3. 框架的介绍
  • 4.Qt发展历程(简单介绍)
  • 5. Qt支持的系统
  • 6. Qt开发方式
  • 7.Qt优点总结

简介:这篇文章简单介绍下Qt的相关知识与应用场景,随便看看,了解了解即可。如果介绍有误或者描述不当,还请各位看官包容包容,我也只是个小白,只是在学习的时候作总结,顺便与大家分享学习内容。学习Qt也只是为做嵌入式做铺垫

1. Qt技术介绍

其实IT行业核心岗位大多四种:开发,测试,运维(管理机器),产品经理(非技术岗,提出需求),在开发中又细分为后端开发,前端开发,算法工程师,游戏开发等等。而前端开发又分为网页前端开发(做网页),桌面应用开发(做电脑上的应用程序),移动应用开发(做手机上的应用程序),而Qt这个技术是用于进行 客户端开发 的。这里要弄清楚客户端与服务器之间的关系,简单来说客户端就是直接和用户打交道的一端程序,比如QQ,微信客户端。那服务器就是客户端背后的那个支持者,为客户端提供各种服务和资源共享,大部分的客户端程序是需要服务器做支撑的,不过也有一些程序是不需要服务器的,这样的程序有计算器,记事本等等,但同样是与客户打交道,也可以把这些程序称为 “客户端程序”

其实准确来说,Qt是特指用来进行桌面应用开发(做电脑上的应用程序)的一项技术,它是不能做网页开发的,但现在好像支持做移动应用开发(只不过用的比较少)。在进行客户端开发的时候必然离不开一项重要任务:那就是去编写与用户交互的界面。而与用户交互的界面一般分为两种,一种是命令行/终端界面,也就是TUI,比如在Linux种是通过输入命令的方式去控制远端的服务器,它的特点是基于命令操作,门槛比较高,但效率也很高,所以基本是给程序猿使用的。另一种就是图形化界面,也就是GUI,比如文件管理可以通过鼠标去增删文件,或者Windows桌面所展示的应用图标,那它的特点就是基于图形化操作,门槛低,但效率也低,所以基本上是给普通的电脑用户使用的。总的来说,Qt是用来编写桌面的GUI程序的一套框架

2. 开发GUI的选择

在Windows编写GUI程序是有很多种的解决方案的,而Qt只是其中的一种选择,下面简单介绍下开发GUI的选择

  1. Windows API Windows提供原生API,开发起来非常原始和繁琐
  2. MFC 主要在90年代非常有影响力,但现在早已经不更新了
  3. Qt 在1991年左右诞生直到现在仍然在不断的推陈出新,更新版本,因此直到现在仍具有生命力
  4. Windows Forms 微软给C#量身定的一套开发GUI技术体系
  5. WPF 主要面向桌面应用程序,支持更丰富的桌面功能和自定义
  6. UMP 注重跨设备兼容性和现代应用体验,提供了许多现代化的API和功能
  7. Electron 本质上是把基于HTML这样的网页,打包成一个Windows上运行的 “客户端程序”,这个技术体系,最初是Github用来开发 “atom” 文本编辑器的,后来被微软的vscode给干没了,它有个比较大的缺点,那就是开发出来的程序运行效率低于上面介绍的一些原生开发的技术体系、

Qt虽然只是众多解决方案的一种,但仍然是非常能打的(在商业公司的产品中使用Qt是非常多的)那对应的就业岗位也是相比其它的解决方案也要更多,更为重要的是Qt有个非常大的优势,它支持跨平台,可以支持Windows,Linux,Mac,可以称的上是六边形战士了,而我学习Qt主要是想为嵌入式系统做准备

3. 框架的介绍

Qt是一个跨平台的C++图形用户界面应用程序框架,框架可以这么去理解,它是一群牛逼的大佬写出来,方便我这种新手小白程序员按照这个框架往里面填充内容,那写出来的代码也相对比较靠谱,我们知道如果写程序比较自由,灵活,约束较少,那就比较容易出错,所以框架相对于是在限制程序员的自由,同时也在规范程序员的写法。这里要区分一下库和框架,库和框架都相当于大佬已经写好可以给你拿去使用,而库是被程序员调用(程序员是主体),但框架则是程序员配合框架去完善框架中的细节(框架是主体)

对于java来说,它对于框架则更加的依赖(比如Spring…)java中的框架它是非常有代表性的,相当于一统天下,大家都愿意去用。而相对于C++来说,框架也是很有必要的。但C++它的生态是割裂的,分散的,每个开源社区和大厂有自己使用和设计的框架,各自为政没有一个共同使用的框架。因此相比于Qt这种,在C++中能够被大家认可共同使用的框架足以能看出它的实力与适应性

4.Qt发展历程(简单介绍)

在1991年,计算机中诞生了很多神奇的东西,比如Qt,Python,Vim,OpenG,Linux。而诺基亚这个手机在那个年代基本上是一家独大,它开发出了塞班系统(最早的智能手机系统了)那诺基亚就主推 Qt 来作为开发塞班系统应用程序的解决方案。但是万万没想到,一夜之间,诺基亚就凉了。诺基亚没了之后,Qt又卖给了另一个公司Digia(迪迦)

2007年,乔布斯发布苹果手机----标致移动互联网时代开启了!!
2012 年左右, IPhone4 成为一代经典.小米和华为也入场智能手机,安卓系统大规模崛起
诺基亚最后的反扑,诺基亚和微软强强联合推出了一代新的智能手机,windows phone----撸没系列,发布没多久,果然就把自己给撸没了。主要原因还是生态太差,别人能下载的软件它却不能下载

5. Qt支持的系统

  1. Windows(各个版本)
  2. Linux(各种发行版)
  3. Mac系统
  4. 嵌入式系统

Linux中的KDE桌面就是基于Qt构建的(GNOME基于GTK构建),但Linux主要是给服务器使用的,而服务器它是不需要图形化界面的,基本上是通过指令去操作,效率高,门槛也比较高。大部分人是使用Windows桌面,也有极少部分人使用Linux作为桌面(不过使用过程中还是存在很多问题的)

嵌入式系统也是Qt实际开发的一个主战场,比如日常使用的洗衣机,投影仪,空调等等。这些设备内部也有计算机,但硬件配置就不需要很高(低配置,低成本),不过有些嵌入式系统也是需要图形化界面的程序去运行。这个时候Qt就能发挥左右了,尤其是在一些工业设备自动化生产上

6. Qt开发方式

在选择下载程序时,并不意味着下载最新版本就越有优势,可能最新版本有更加独特的功能和体验,但随之而来的也有新存在的问题没有解决。同样在软件开发中,并非是越新就越好在进行商业开发的时候,相比之下,引入新的特性,不如优先确保不引入严重的问题
商业许可:你想使用Qt开发一个程序,就可以向Digia这个公司购买商业许可证(花钱),主要买的是技术支持,哪里出了问题就可以直接找Digia公司,可以这么说商业许可提供了更多的功能和服务。比如,Redhat (收费 Linux 发行版)比如,Oracle(收费的数据库)
开源许可:使用Qt开发一个程序,不必花钱,直接白嫖

7.Qt优点总结

● 跨平台,几乎支持所有的平台;
● 接口简单,容易上手,学习QT框架对学习其他框架有参考意义。
● 一定程度上简化了内存回收机制;(半自动的垃圾回收,能够简化内存释放,也能够尽可能小的影响程序的运行效率
● 开发效率高,能够快速的构建应用程序。
● 有很好的社区氛围,市场份额在缓慢上升。
● 可以进行嵌入式开发。

相关文章:

  • 进程与线程-----C语言经典题目(8)
  • 在使用docker创建容器运行报错no main manifest attribute, in app.jar
  • C++ TCP通信原理与实现
  • 2025年邵阳市工程技术研究中心申报流程、条件、奖补
  • AI中Token的理解与使用总结
  • 小集合 VS 大集合:MySQL 去重计数性能优化
  • 4月27日日记
  • fastapi【0基础学习之路(未学py版)】
  • 「Mac畅玩AIGC与多模态01」架构篇01 - 展示层到硬件层的架构总览
  • 函数式编程之 Optional
  • 秒杀压测计划 + Kafka 分区设计参考
  • 关于OCP认证:有Oracle和MySQL两种
  • Dart中的库 自定义库 系统库 第三方库
  • TV launcher官方下载-tv launcher汉化版-tv桌面启动器极简下载
  • 【二分查找】搜索插⼊位置(easy)
  • 设计模式全解析:23种经典设计模式及其应用
  • Redis的阻塞
  • MySQL 表的约束(一)
  • DeepSeek 多头潜在注意力(Multi-Head Latent Attention, MLA)技术
  • Linux——线程(2)线程互斥(锁)
  • 外交部:对伊朗拉贾伊港口爆炸事件遇难者表示深切哀悼
  • 消费维权周报|上周违规经营类投诉较多,涉诱导加盟等
  • 十大券商看后市|A股风险偏好有望边际改善,市场仍处黄金坑
  • 程璧“自由生长”,刘卓辉“被旋律牵着走”
  • 中央纪委办公厅公开通报3起整治形式主义为基层减负典型问题
  • 商务部:将打造一批国际消费集聚区和入境消费友好商圈