蓉华教育嵌入式开发系列:[1]初识QT开发技术
作者:蓉华教育
2025-01-08
209次阅读
QT是一个跨平台(芯片)的客户端技术。所以我们先来看一下常见的客户端技术。QT是一种绘制界面的技术。可以做单机应用开发,可以做网络程序的客户端界面开发。 网络程序的客户端界面这个用得多,毕竟现在大部分程序都要联网交互了。蓉华教育的嵌入式阶段课程中包含了QT开发技术从0基础到QT开发在物联网设备的各种嵌入式平台(芯片)和操作系统上的实战。
1、常见的客户端技术
VB,上古程序员的开发工具,曾经全球第一的开发语言,拖拽式的图形化开发让它成为极佳的桌面开发工具。微软依靠其操作系统的优势,一直压制同时期的竞争对手delphi。微策略早期应用该术,开发了管理智能商务平台的大杀器developer。
C++、win32API的MFC方案是基于窗口中组合控件和消息传递机制。这也是20多年前的技术,所以API设计的不是很友好。几年前微软已经停止维护,简单来说它已经过时了。
Winform微策略几年前基于该技术研发第一代的Desktop版本,但是从开发体验角度来说自定义、美化控件会比较麻烦。
C# .net framework,代表就是WPF,它的原生特性是其他类库无法比拟的:High DPI、Split Screen以及对DirectX的天然优势。但是并不开源, 需要依赖.net框架,还有就是启动会比较慢。Workstation Windows的新客户端就是基于该技术研发。
Java swing/javaFx,这是一类比较大的阵营,优势是跨平台和流行开发语言Java的天然结合,但开发出来的界面作者个人认为并不美观。
C++ Qt,这是很多客户端跨平台的首选,因为开源、UI库和各种功能的类库非常丰富,但是学习成本比较高。
C++ duilib,这是windows下开源的directUI(微软提出的分离 UI 和逻辑的思想)库,它是迎合互联网桌面软件小而美的趋势发展起来的,可能大家对它的关注度比较少。但是用它开发出的产品大名鼎鼎,比如QQ、微信、爱奇艺等很多知名度高的软件。
Objective-c/swift cocoa,这是mac平台下的方案。可以方便调用底层的API,缺点是不跨平台,文档不友好,UI库并不丰富。现在这种方式开发的越来越少了。
2、QT概述
One framework. One codebase. Any platform,这是Qt官网的一句话,很好的概括了什么是Qt。
Qt是一个开源的C++应用程序框架,它拥有完备的C++图形库和集成了一系列代码模块简化难度,Qt支持C++,Python,QML,Javascript等多种语言,适合多种技术、开发方式。同时Qt也拥有一套完整的设计、开发工具以及丰富的文档和例程,其开源社区非常活跃,这些能明显降低开发难度和缩短开发时间。
3、QT的发展历史
Qt最早是1991年由挪威的Eirik Chambe-Eng和Haavard Nord开发的,1994年3月4日成立奇趣科技公司(Trolltech);
2000年奇趣科技公司为开源社区发布了遵循GPL(GNU General Public License)许可证的开源版本;
2008年诺基亚公司收购了奇趣科技公司,并增加了LGPL(GNU Lesser General Public License)的授权模式;
2011年3月Qt商业授权业务出售给了芬兰IT服务公司Digia。
2013年7月3日发布Qt5,2020年6月12日Qt5.15 LTS正式发布,目前已经推出Qt6。
经过多年的发展,市面上也有很多基于Qt开发的应用程序:WPS、YY语音、豆瓣电台、虾米音乐、淘宝助理、千牛、暴雪的战网客户端、VirtualBox、Google地图、Photoshop等等.
4、为什么选择QT
Qt有非常好的跨平台特性,使用Qt开发的软件只需要做很少的适配甚至根本不需要修改任何源代码,就可以在大多数的平台上编译运行。并且它会自动根据平台的不同,表现平台特有的图形界面风格。
Qt的图像图形支持非常优秀,尤其是在Linux 平台,6.0更是引入对3D的支持。使用Qt库做UI设计开发非常简单,Qt提供的辅助开发工具能明显缩短开发周期且让我们代码更加规范,便于维护。
Qt是一套开源框架,同时又能以LGPL授权,对于社区开发以及商业开发都非常友好。
Qt大力支持嵌入式,MCU 等领域的发展,其插件机制非常灵活
上一篇:蓉华教育嵌入式开发系列:[2]QT开发工具下载和安装
下一篇:Python必备:推荐7个高效实用的装饰器!