初始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框架就常用于工业场景,它能保证系统在严苛条件下的实时性和可靠性。

相关推荐
GoKu~1 小时前
Qt图形渲染相关例子
qt
万山寒2 小时前
python依赖包导出离线安装到没有外网的服务器
服务器·开发语言·python
特立独行的猫a2 小时前
我用 Rust + Tauri 2 复刻了 N_m3u8DL-CLI:一个 m3u8 多线程下载器
开发语言·后端·rust·m3u8·视频下载器·m3u8dl-cli
程序员雷欧2 小时前
LongAdder
开发语言·python
鱼子星_2 小时前
【C++】反向迭代器:反向迭代器的底层认识与模拟实现
开发语言·c++·笔记·stl
名字还没想好☜2 小时前
Java 用 MethodHandle 替代反射:调用性能实测、invokeExact 的坑与缓存
java·开发语言·缓存·反射·methodhandle
SMF19192 小时前
【Linux】完美解决缩略图工具gm调用java.io.FileNotFoundException: gm问题
java·开发语言·python
念何架构之路2 小时前
路由注册:RouterGroup(routergroup.go)
开发语言·后端·golang
Darkwanderor2 小时前
C++的流简介和简单使用
开发语言·c++