初始Qt——了解Qt背景

1. 开发GUI的各种技术方案

Windows下开发GUI的方案:

  1. Windows API ------Windows系统提供的原生API,但是开发起来非常原始和繁琐

  2. MFC ------将Windows API封装出来一些类来开发,提供了新的开发思路,更加便捷,但是现在已经不更新了

  3. Qt ------ 和MFC开发方式相似,并且一直在更新,比较有生命力

上面都是基于C/C++搭建出来的,后面微软自己搞了一个编程语言C#(C sharp)

  1. Windows Forms ------ 给C#(.net)量身定做的一套开发GUI技术体系

  2. 微软还弄了WPF、UWP,相当于Windows Forms的升级版,并且希望能支持平板和手机开发GUI,但是应用并不广泛

  3. Electron ------ 本质上是把基于HTML这样的网页,打包成一个Windows上运行的客户端程序。这个技术体系最初是用来开发"atom"文本编辑器的,后面atom被微软的VScode替代了。这个技术体系比较大的缺点就是开发出来的程序运行效率不如前面的原生开发

Qt在这些解决方案相较于其他方案是比较好用的,商业公司的产品用的比较多,不仅开发出来的程序运行效率不低而且还能够跨平台(支持Windows、Linux、Mac以及嵌入式系统)

2. 框架的理解

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

那么什么是框架呢?

框架其实就相当于代码的主要骨架,大佬已经帮我们把代码的主要骨架都已经写好了,我们只需要在此基础上扩展功能,所谓是站在巨人的肩膀上了,这样我们写代码出错的可能性也会降低,提高开发效率。

库和框架常常会被混淆,但是其实两者本质不完全相同。库是开发者的工具,是否使用以及怎样使用是开发者说了算,但是框架是在你开发前就已经写好了的,并且规定了你该怎么写,你只能在他的规则之下去开发。

3. Qt发展历程

1991年Qt最早由奇趣科技开发;

1996年进入商业领域,它也是目前流行的Linux桌面环境KDE的基础;

2008年奇趣科技被诺基亚公司收购,Qt成为诺基亚旗下的编译工具;

2012年Qt又被Digia公司收购;

2014年4月跨平台的集成开发环境Qt Creator3.1.0发布,同年5月20日发布了Qt5.3正式版,至此Qt实现了对IOS、Android、Embedded等平台的全面支持。

4. Qt版本和优点

目前Qt最新的的版本是Qt6,但是Qt6和Qt5的核心功能区别不大,并且企业中仍有大量项目使用Qt5,所以大家按需选择即可。

Qt的优点:

  1. 跨平台,几乎支持所有平台;

  2. 接口简单,容易上手;

3.一定程度上简化了内存回收机制;

4.开发效率高,能够快速构建应用程序;

  1. 社区氛围好。

5. Qt的应用场景

5.1 桌面应用程序开发

这是Qt最经典的应用领域。利用Qt,你可以为Windows、Linux、macOS等系统开发出高性能、界面美观的桌面软件。

许多我们熟悉的跨平台软件都基于Qt开发,比如WPS OfficeVLC多媒体播放器SkypeGoogle Earth 以及虚拟机软件VirtualBox。这些软件正是看中了Qt在确保原生体验的同时,能极大降低跨平台维护成本的特性。

5.2 移动与嵌入式系统

Qt能将你的应用扩展到移动设备和资源受限的嵌入式硬件上。

移动应用:全面支持Android和iOS,可以帮你快速开发社交、工具、娱乐等各种类型的移动App,避免为不同平台维护两套代码。

嵌入式与工业:这是Qt应用最深入、最广泛的领域。从工业控制设备的实时监控界面,到汽车智能座舱(车载信息娱乐系统),再到智能家居、医疗设备、机顶盒和安防监控等产品的人机交互界面,背后都有Qt的身影。例如,Qt/Embedded框架就常用于工业场景,它能保证系统在严苛条件下的实时性和可靠性。

相关推荐
不正经学生1 小时前
C语言预处理详解:编译器真正动手之前的那些事
c语言·开发语言·算法·面试·bug
门思科技1 小时前
LoRaWAN 设备类别:Class A、B、C 对比与选型指南
c语言·开发语言·php
恋恋西风4 小时前
C++ 理解 std::thread 在单核和多核上的行为差异
开发语言·c++
Brilliantwxx4 小时前
【Linux】 进程(9)程序与进程地址空间(基础+进阶+面试题)
linux·运维·服务器·开发语言·c++
BizzZ_5 小时前
C++(22)——类型转换和IO流
开发语言·c++
小范同学_5 小时前
JDK1.7 与 JDK1.8 HashMap 底层原理对比 + 数组并发扩容死循环详解
java·开发语言
geovindu5 小时前
CSharp: 万年历
开发语言·后端·c#·.net
我找到地球的支点啦6 小时前
Matlab系列(009) 一CRC循环冗余校验详解
开发语言·数据结构·算法·matlab·信息与通信
予昊6 小时前
从零实现“在线五子棋对战“:WebSocket 实时通信 + 段位匹配
java·开发语言·网络·websocket
weixin_461408586 小时前
Mybatis-flex小记
java·开发语言·mybatis