初始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 Office 、VLC多媒体播放器 、Skype 、Google Earth 以及虚拟机软件VirtualBox。这些软件正是看中了Qt在确保原生体验的同时,能极大降低跨平台维护成本的特性。

5.2 移动与嵌入式系统

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

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

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

相关推荐
ESDWAN26 分钟前
跨境网络延迟、抖动和丢包有什么区别?如何判断业务影响
开发语言·网络·计算机网络·php
Code_Solitude29 分钟前
C语言分支结构练习题(华师版)
c语言·开发语言
从小白到软工1 小时前
4-1 指针
c语言·开发语言·数据结构·经验分享·ai编程
Pniubi1 小时前
agent处理封号怎么解决误封问题
开发语言·python
.Hypocritical.1 小时前
【Java 进阶】泛型深度解析|泛型类、泛型方法、通配符、类型擦除、PECS 原则
java·开发语言·泛型
VX_bysjlw9851 小时前
基于PHP的论坛系统设计与实现 35136-计算机毕设原创(免费领源码+带部署教程)
开发语言·php·apache·laravel·thinkphp·phpstudy·wampserver
忆~遂愿1 小时前
电影照片散在硬盘里不好找?我用群晖+Plex整理成可远程访问的家庭媒体库
开发语言·php
卢锡荣2 小时前
乐得瑞Type-c接口产品描述
c语言·开发语言
晴天的雨.9922 小时前
【C++】模板进阶
开发语言·c++·算法
mengzhi啊2 小时前
SerialPortItem对串口再封装一层,省去一些常用的步骤,不用每次都去写类
qt