Qt
Qt简介
Qt是一个跨平台的 C++ 开发库,主要用来开发图形用户界面(Graphical User Interface,GUI)程序,当然也可以开发不带界面的命令行(Command User Interface,CUI)程序。
Qt 还存在 Python、Ruby、Perl 等脚本语言的绑定, 也就是说可以使用脚本语言开发基于 Qt 的程序。开源社区就是这样,好东西就会被派生扩展,到处使用, 越来越壮大。
Qt 支持的操作系统有很多,例如通用操作系统 Windows、Linux、Unix,智能手机系统 Android、iOS、WinPhone, 嵌入式系统 QNX、VxWorks 等等。
Qt 可以做什么?
Qt 虽然经常被当做一个 GUI 库,用来开发图形界面应用程序,但这并不是 Qt 的全部;Qt 除了可以绘制漂亮的界面(包括控件、布局、交互),还包含很多其它功能,比如多线程、访问数据库、图像处理、音频视频处理、网络通信、文件操作等,这些 Qt 都已经内置了。
Qt 是应用程序开发的一站式解决方案,有了 Qt,你就可以高枕无忧了!Qt 本身包含的模块也日益丰富, 一直有新模块和第三方模块加入进来。
大部分应用程序都可以使用 Qt 实现,除了与计算机底层结合特别紧密的,例如驱动开发,它直接使用硬件提供的编程接口,而不能使用操作系统自带的函数库。 1997年,Qt 被用来开发 Linux 桌面环境 KDE,大获成功,使 Qt 成为 Linux 环境下开发 C++ GUI 程序的事实标准。
下面的程序都使用 Qt 开发:WPS、YY语音、Skype、豆瓣电台、虾米音乐、淘宝助理、千牛、暴雪的战网客户端、VirtualBox、Opera、咪咕音乐、Google地图、Adobe Photoshop Album 等。
Linux 也是嵌入式的主力军,广泛应用于消费类电子、工业控制、军工电子、电信/网络/通讯、航空航天、汽车电子、医疗设备、仪器仪表等相关行业。
Qt 虽然也支持手机操作系统,但是由于 Android 本身已经有 Java 和 Kotlin,iOS 本身已经有 Objective-C 和 Swift,所以 Qt 在移动端的市场份额几乎可以忽略。
总起来说,Qt 主要用于桌面程序开发和嵌入式开发。
Qt比较优势
Qt不依赖图形系统,低端工控机的硬件配置可能是连一个图形系统都跑不起来的,而Qt可以直接写屏实现图形界面。其他不依赖图形系统的开发框架都比Qt弱,比Qt强的开发框架基本都依赖图形系统,所以Qt就成为当下现有解决方案中最强的开发框架了。至于虚拟机、浏览器这些东西,一个连图形系统都配置不起的嵌入式工控机是基本不会搭载浏览器或虚拟机的,java、Python、html5等方案直接淘汰。
Qt对硬件配置要求极低,c++的性能又相对其他语言高,所以成为低配设备的首选。
Qt不依赖图形系统,低端工控机的硬件配置可能是连一个图形系统都跑不起来的,而Qt可以直接写屏实现图形界面。其他不依赖图形系统的开发框架都比Qt弱,比Qt强的开发框架基本都依赖图形系统,所以Qt就成为当下现有解决方案中最强的开发框架了。至于虚拟机、浏览器这些东西,一个连图形系统都配置不起的嵌入式工控机是基本不会搭载浏览器或虚拟机的,java、Python、html5等方案直接淘汰。
Qt对硬件配置要求极低,c++的性能又相对其他语言高,所以成为低配设备的首选。
Qt 的辛酸史
Qt (官方发音 [kju:t],音同 cute)发展和名字由来(来源于百科)
Qt 最早是 1991 年由挪威的 Eirik Chambe-Eng 和 Haavard Nord 开发的,Haarard Nord(duTrolltech 公司的 CEO)和 Eirik Chambe-Eng
(Trolltech 公司的总裁)是一家瑞典公司的同事。那时(1990)他dao们在做一个项目,这
个项目需要在 Unix,Macintosh,Windows上运行同一个 GUI,象我们现在的开发人员
一样,工作的很累,当时可是没有如今这么多的开发工具。一天他们工作之余去公园散步,
晒太阳,喝咖啡。Haarard 说:“We need an object-oriented display system。”这成
为了后来 Qt最重要的思想:提供面向对象的跨平台的 GUI框架。看到这里我不仅感
慨:什么时候我们的程序员们可以在工作的时候出来走走,只有在轻松愉快的环境中才会生
产出出色的成果。在沉闷的办公室里,只是机械的堆砌代码而已。
说做就做,Haarard 开始写代码,Eirik 负责设计,Qt 在襁褓中逐渐成长,在开始蹒
跚学步的时候(1993年),他们开始让 Qt 闯荡江湖,两个人开始了创业的艰辛历程。
对这两个年轻人,1994 年是非常艰难的一年,他们没有客户,没有钱,只有还没有
完全实现的产品。关键时刻,他们的妻子帮他们渡过了难关。
字母 Q 作为所有类的前缀,是因为 Haarard 手写这个字母看起来特别的漂亮,字母 t
代表“toolkit”,在 Xt, X toolkit 等中得到灵感。
他们随后于 1994 年 3 月 4 号正式成立奇趣科技公司(Trolltech)。Qt 原本是商业授权的跨平台开发库, 在 2000 年奇趣科技公司为开源社区发布了遵循 GPL(GNU General Public License)许可证的开源版本。
在 2008 年,诺基亚公司收购了奇趣科技公司,并增加了 LGPL(GNU Lesser General Public License)的授权模式。诺基亚联合英特尔利用 Qt 开发了全新的智能手机系统 MeeGo,可惜遭遇了微软木马屠城,诺基亚被迫放弃了 MeeGo, 而 Qt 商业授权业务也于 2011 年 3 月出售给了芬兰 IT 服务公司 Digia。
当然好消息是 Digia 于 2014 年 9 月宣布成立 Qt Company 全资子公司,独立运营 Qt 商业授权业务。目前 Qt 公司大力推广移动平台开发和商业应用, 总的来说 Qt 历经曲折,现在算是步入正轨了。
经过 20 多年的发展,Qt 已经成为最优秀的跨平台开发框架之一,在各行各业的项目开发中得到广泛应用。许多大型软件都是用 Qt 开发的,如 Autodesk Maya、Google Earth、Skype、WPS Office等。
永远不要忽视微软帝国的威胁,作为软件业的一代霸主,任何人都不要天真地试图和它做朋友,因为霸主不可能有朋友。微软的木马屠城是所有诺基亚人和芬兰人的痛,希望读者们都记牢这条。