​前言:Qt作为一个跨平台的界面开发平台,经过了历史长河的洗礼以及一代代Qt开发者的不断努力,其意义已经远远高于开发界面。使用Qt你甚至可以利用硬件的一切资源开发出一套桌面系统。

一、什么是Qt?

Qt是由Qt Company开发的跨平台C++图形用户界面应用程序开发框架。它既可以开发界面程序,比如pc端的多窗口软件以及嵌入式的单窗口界面(包括安卓界面);也可以开发非界面程序,例如某些动态链接库程序,在创建工程的时候会选择你创建工程的类型。

pc软件界面

 

嵌入式界面

 

目前使用最广泛的qt版本是由C++为主要语言的Qt,此外还有pyQt也会有大批人使用,这两种的区别就是调用Qt库是使用C++还是python。关于讨论这两种版本的好处一直也是热点问题,笔者认为讨论这两个版本的好处不如说你熟悉哪种语言,客观上当然是python更加好一些,因为python是比C++更加面向对象的语言,而我们知道越上层的语言会造成最终产品更慢,但是使用pyQt是直接调用Qt的API,我们完全不必担心程序执行速度的问题。当然,本人是C入门,所以使用C++版本的Qt会更加舒服一些。

从Qt4.7开始,QML开始加入到Qt中成为与C++同等地位的语言,此时的Qt已经被诺基亚收购,诺基亚希望将Qt应用到自己的系统中,而widget构建的界面已经不能够满足移动端的界面优化,或者说开发出优美的界面过于繁琐,所以急需一种描述性的机制来完成界面的制作。而QML基于JS 开发,更加简单实用。从Qt5开始,QML完成了大跨度的进步,一举成为真正意义上的与C++同等地位的语言。当然,由于JS本身语言的限制,QML只能完成漂亮的界面制作,而C++能够调用Qt的API来完成功能的实现,二者的交互可以完成一套非常完美的产品

二、Qt历史及发展

1991:Haavard Nord和Eirik Chambe-Eng开始开发将会支持X11和Windows的Qt

1994:Qt Company成立,在这之后改名为Trolltech,中文名是奇趣科技。

1995:Qt的第一个商业版本发布,Qt正式步入商业化。但是Qt一直分为商业版开源版两个版本,商业版由Qt公司提供技术支持,开源版可以奉行Qt公司的规则来免费使用。

2000:Qt嵌入式版本发布标志着Qt多平台开发已经由多窗口向着单窗口发展。同年,Qt全平台使用GPL协议,GPL协议指如果你开发了新程序,每个人都能在遵守条款的基础上对它进行修改和重新发布。从客观上讲使用这一协议限制了Qt的发展。

2008:诺基亚公司宣布通过公开竞购的方式收购奇趣公司,Qt技术被诺基亚公司收入囊中,诺基亚也根据自己移动平台来规划Qt的发展。

2009:从发布的Qt 4.5 起,诺基亚为Qt增添开源LGPL授权选择,这一协议直接让Qt完全成为大众化的代码库,是一种进步的表现。同年,诺基亚Qt Software 宣布Qt源代码库面向公众开放,Qt 开发人员可通过为 Qt 以及与 Qt 相关的项目贡献代码、翻译、示例以及其他内容,协助引导和塑造 Qt未来的发展。为了便于这些内容的管理,Qt Software 启用了基于Git 和 Gitorious 开源项目的Web 源代码管理系统。

2011:Digia从Nokia收购了Qt的商业版权,从此Nokia负责Qt on Mobile,Qt Commercial由Digia负责

2012:作为非核心资产剥离计划的一部分,诺基亚宣布将Qt软件业务出售给芬兰IT服务公司Digia。

2014:跨平台集成开发环境Qt Creator 3.1.0正式发布,实现了对于iOS的完全支持,新增WinRT、Beautifier等插件,废弃了无Python接口的GDB调试支持,集成了基于Clang的C/C++代码模块,并对Android支持做出了调整,至此实现了全面支持iOS、Android、WP,它提供给应用程序开发者建立艺术级的图形用户界面所需的所有功能。

三、Qt的优势

1、跨平台。我们编写的一套程序,若没有极其特殊的要求,通过更改编译步骤,是可以在其他嵌入式或者linux界面上被支持的,所以Qt可以算是MFC的一个超集。这对于很多嵌入式程序员来说可以说是一个福利。

2、面向对象。模块化程度高,重用性好;使用相对安全的信号与槽机制来代替回调函数,各个函数之间的协调更加灵活。

3、丰富的API。我们所需要的库,在其API中都可以找到,并且有很高的集成度,不仅速度快并且简单易用。

4、帮助文档丰富。我们在使用库函数时,并不是每个函数都可以清楚记得作用及用法,此时Qt的帮助文档可以帮助我们解决此问题

5、Qt支持2D/3D图形渲染,并且支持OpenGL。

Qt成功案例

1、WPS:金山公司推出的办公软件,可与microsoft office兼容良好。

2、咪咕音乐:中国移动推出的音乐软件,拥有海量的版权。

3、VirtualBox:一款常用的虚拟机软件。

4、Autodesk Maya:3D建模和动画软件。

5、eva:Linux版QQ聊天软件。

6、Stellarium:一款天文学的自由软件。

7、刺猬大作战:一个基于百战天虫的开源游戏。

8、Opera:著名的网页浏览器。

9、Arora:一款跨平台的开源网页浏览器

10、VisIt:一个开源型交互式并行可视化与图形分析工具,用于查看科学数据。

GitHub 加速计划 / li / linux-dash
10.39 K
1.2 K
下载
A beautiful web dashboard for Linux
最近提交(Master分支:2 个月前 )
186a802e added ecosystem file for PM2 4 年前
5def40a3 Add host customization support for the NodeJS version 4 年前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐