Qt 的发展历史、现状与启示

2024-04-04 13:44
文章标签 发展 qt 历史 现状 启示

本文主要是介绍Qt 的发展历史、现状与启示,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Qt 最早在1991年由挪威的两位程序员 Eirik Chambe-Eng 和 Haavard Nord 开发,他们在1994年创立 Trolltech 公司(奇趣科技)正式经营软件业务。Qt 的第一个公众预览版于1995年面世,之后在2008年被诺基亚收购;2011年到2012年,在诺基亚全面转向微软系后,将 Qt 软件业务出售给了芬兰 IT 服务公司 Digia;2016年,Qt 公司从 Digita 独立出来并在芬兰上市;2017年获得 1500 万欧元投资;2018年在坚持了20多年后,Qt 终于迎来了物联网时代,在智能汽车、智能制造业等领域变得愈发重要。

初创阶段

Haavard 和 Eirik 相识于特隆赫姆(Trondheim)的挪威科技学院,这也是他们获得计算机科学硕士学位的地方。1988年,一家瑞典公司委派 Haavard 开发一套 C++ 的用户界面框架,从此,Haavard 对 C++ 用户界面开发产生了浓厚兴趣。

两年后,1990年夏天,Haavard 与 Eirik 一起在特隆赫姆医院从事超声设备的软件开发,开发一个基于 C++ 的超声图像数据库系统。这个系统需要在 Unix、Macintosh 和 Windows 系统上运行,并带有图形用户界面。这个夏天的一天,Haavard 和 Eirik 外出享受阳光,他们坐在公园长椅上,Haavard 说:“我们需要一个面向对象的显示系统。” 这场讨论是面向对象的跨平台图形用户界面框架的理论基础,而他们也将投入于创建这一框架。可以说,正是由于对当时跨平台软件开发工具的不满意,他们才决定开发 Qt。

1991年,Haavard 和 Eirik 开始合作构建 Qt,Eirik 负责设计,Haavard 则编写最终成为 Qt 的那些类。之后的一年,Eirik 提出了“信号和槽”的构想,这是一个简单但功能强大的图形用户界面编程规范,如今已被多个工具包实现。Haavard 接受了这一构想并进行了代码实现。1993年,Haavard 和 Eirik 开发出了 Qt 的第一个图形内核类并用以实现他们自己的窗口部件。1993年底,Haavard 建议进军商业领域,从而创建“世界上最好的 C++ 图形用户界面开发框架”。

1994年3月4日,Haavard 和 Eirik 共同创立了 Quasar Technologies 公司,后更名为 Troll Tech,也就是后面人们熟知的 Trolltech(奇趣科技)。对于这两位年轻的程序员来说,1994年的开始是不幸的,他们想进入一个稳定的市场,却没有客户和资金,只有一个未完成的产品。幸运的是,他们的妻子都有工作,可以支撑他们进行两年的产品开发。Eirik 和 Haavard 预计两年后就可以开始赚钱了。

至于为什么这个图形框架取名为“Qt”,是因为字母 Q 在 Haavard 的文本编辑器 Emacs 字体上看起来非常完美,因此“Q”被选作了类名的前缀。同时,受 Xt(XToolkit 的缩写)的启发,又添加了字母“t”,代表工具包(Toolkit)。

1995年4月,在 Haavard 一个大学教授的介绍下,一家挪威公司 Metis 雇佣他们使用 Qt 开发软件。几乎与此同时,奇趣科技招聘了 Arnt Gulbrandsen。在奇趣科技的六年里,Arnt 设计实现了独具特色的文档系统,对 Qt 的代码也做出了不少贡献。

1995年5月20日,在 sunsite.unc.edu 上传了 Qt 0.90 版本。六天后,Qt 的发行版本发布在 comp.os.linux.announce 上。这是 Qt 的首个公开发行版本。Qt 可以用于进行 Windows 和 Unix 系统开发,并在两个系统平台上提供相同的应用程序接口(API)。从第一天起,Qt 就提供了两种授权许可版本:用于商业开发的商业许可版和用于开源开发的免费版本。Metis 的合同保证了奇趣科技的正常发展,然而,在之后的十个月里再没有一个人购买 Qt 的商业许可协议。

1996年3月,欧洲太空总署成为了 Qt 的第二个用户,并购买了 10 个 Qt 的商业许可协议。凭着坚定的信念,Eirik 和 Haavard 又雇佣了其他开发人员。5月底,Qt 0.97 版本发布;9月24日,Qt 1.0 版本发布;同年年底,Qt 已经发布到了 1.1 版本。来自不同国家的八个用户购买了 18 个许可协议。也是在这一年,在 Matthias Ettrich 带领下,开始了 KDE 项目。

Qt 1.2 版本于1997年4月发布。Matthias Ettrich 用 Qt 构建 KDE 的决定帮助 Qt 成为 Linux 系统上开发 C++ 图形用户界面的事实标准。1997年9月,Qt 1.3 版本发布。

Matthias 于1998年加入奇趣科技,9月份,Qt 1.x 的最后一个主版本 1.40 版发布。1999年6月,Qt 2.0 发布。Qt 2 有一个新的开源许可协议 —— Q公共许可协议(Q Public License,QPL),它与开源的定义一致。1999年8月,Qt 赢得了 LinuxWorld 的最佳库/工具奖,开始受到投资者的广泛关注,并在2000年互联网泡沫破灭之前获得了 800 万美元的资金。与此同时,奇趣科技有限公司(澳大利亚)(Trolltech Pty Ltd)成立。

奇趣科技在2000年发布了 Qt/Embedded Linux。它被设计作为 X11 的轻量级替代产品,运行于嵌入式 Linux 系统设备,并提供窗口系统。Qt/X11 和 Qt/Embedded Linux 不仅提供了商业许可协议,还提供了被广泛应用的 GNU 公用许可协议(General Public License,GPL)。2000年年底,奇趣科技有限公司(美国)(Trolltech Inc)成立,并发布了 Qtopia 的首个版本。Qtopia 是应用于移动电话和掌上电脑(PDA)的应用软件平台。Qt/Embedded Linux 在2001和2002年连续两年赢得了 LinuxWorld 的“最佳嵌入式 Linux 解决方案奖”,Qtopia Phone 在2004年获得了相同奖项。

2001年,Qt 3.0 版本发布。Qt 已经可以应用于 Windows、MacOS X、Unix 和 Linux(桌面系统和嵌入式系统)系统。Qt 3 提供了 42 个新的类,代码行也超过了 500000 行。Qt 3 在 Qt 2 的基础上迈进了一大步,在很多方面进行了重大改进,主要包括本地化、统一字符编码标准(Unicode)支持、一个全新的文本编辑查看部件以及一个类似于 Perl 的正则表达式类。Qt 3 在2002年获得了 SoftwareDevelopment Times 的"Jolt Productivity Award"。

2005年夏天,Qt 4.0版本发布。Qt 4 较之前版本更加全面和丰富,共有大约 500 个类和 9000 多个函数。Qt 被分成了几个不同的函数库,开发人员只需要链接他们用到的那部分即可。Qt 4 在前续版本上进行了重大改进,包括一套全新的高效易用的模板容器、高级的模型/视图功能、灵活高速的二维绘制框架、强大的 Unicode 文本读写类以及对 Qt 类进行的数以千计的功能增强。伴随着 Qt 应用范围的扩大,Qt 已不仅仅是一个图形用户界面工具包,俨然发展成一个成熟的应用开发框架。Qt 4 也是首个在其支持的所有平台上既能进行商业开发又能进行开源开发的 Qt 版本。

同样是在2005年,奇趣科技在北京成立了办事处,以发展中国客户,并提供 Qt/Embedded Linux 和 Qtopia 的销售服务、培训及技术支持。

通过一些非官方的语言绑定件,非 C++ 程序员也早就开始使用 Qt 了,尤其是 Python 程序员使用的 PyQt。2007年,针对 C# 程序员发布了 Qyoto 非官方绑定件。同年,奇趣科技正式推出了 Qt Jambi,这是一个官方支持的 Java 版 Qt 应用编程接口。

自奇趣科技诞生以来,其推广普及就从未减弱过,时至今日仍在快速增长。Qt 的成功反映了 Qt 的品质和其易用性。多年来,Qt 已成为世界领先的软件开发框架之一,如今已成为跨各种平台创建应用程序的行业标准,在全世界拥有数以千计用户和数以万计的开源开发者的产品。

Nokia 阶段

诺基亚(Nokia)曾是全球手机市场的霸主,但自从2007年 iPhone 掀起的智能手机革命,加上 Android 的出现,诺基亚逐渐走向衰落。

2008年,诺基亚以 1.53 亿美元收购奇趣科技并将其改名为 Qt Software,以加速诺基亚针对移动终端和桌面应用跨平台的软件战略的实施,以及拓展其互联网服务业务。2009年8月,Qt Software 再次改名为 Qt Development Frameworks(Qt 开发框架)。

从正式发布开始,Qt 就提供了两种授权许可版本,即适用于商业项目的商业许可版和适用于开源项目的 GPL 许可。2009年1月,诺基亚宣布 Qt 支持 LGPL 2.1 授权,将其推向开源。这实质上是为了让更多开发人员可以免费使用它,虽然仍有一些模块使用不开源的 Qt 授权。(LGPL 授权的限制强度处于 GPL 和 BSD 之间,也为 Mozilla 和 OpenOffice 等开源软件所采用的许可证)

在此期间,诺基亚联合英特尔利用 Qt 开发了全新的智能手机系统 MeeGo,可惜遭遇了微软木马屠城,诺基亚最终被迫放弃了 MeeGo,而 Qt 商业授权业务也于2011年3月出售给了芬兰 IT 服务公司 Digia。2011年第二季度,诺基亚被苹果和三星双双超越,在智能手机市场的销量落后于苹果及三星的手机,而在低端手机市场,又无法制住其它的亚洲竞争对手。2013年9月3日,微软宣布将以 72亿美元收购诺基亚手机制造等业务;2014年11月,诺基亚宣布不会再制造手机。

Digia 阶段

2011年至2012年间,芬兰 IT 服务公司 Digia Oyj 从诺基亚收购所有 Qt 业务,并计划使 Qt 支持 Android、iOS 和 Windows 8,大力推广移动平台开发和商业应用。

2014年9月,Digia 宣布成立 Qt Company 全资子公司,独立运营 Qt 商业授权业务。2016年3月,Qt 公司(Qt Group)被 Digia 分拆为独立公司,并于同年5月在赫尔辛基证券交易所挂牌上市。经历艰难曲折,Qt 终于算是步入正轨了。

如今,Qt 依然提供了 GPL、LGPL 和 Commercial 三种授权协议。根据公开资料,Qt 目前在全球12个国家拥有近700名员工(其中300名研发),2022财年销售收入 1.55 亿欧元。

扩展阅读

  • About Qt - Qt Wiki
  • Qt History - Qt Wiki
  • Qt version history - Qt Wiki
  • Qt (software) - 维基百科
  • Qt Project - 维基百科
  • 诺基亚 - 维基百科

这篇关于Qt 的发展历史、现状与启示的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/875933

相关文章

基于Qt Qml实现时间轴组件

《基于QtQml实现时间轴组件》时间轴组件是现代用户界面中常见的元素,用于按时间顺序展示事件,本文主要为大家详细介绍了如何使用Qml实现一个简单的时间轴组件,需要的可以参考下... 目录写在前面效果图组件概述实现细节1. 组件结构2. 属性定义3. 数据模型4. 事件项的添加和排序5. 事件项的渲染如何使用

基于Qt开发一个简单的OFD阅读器

《基于Qt开发一个简单的OFD阅读器》这篇文章主要为大家详细介绍了如何使用Qt框架开发一个功能强大且性能优异的OFD阅读器,文中的示例代码讲解详细,有需要的小伙伴可以参考一下... 目录摘要引言一、OFD文件格式解析二、文档结构解析三、页面渲染四、用户交互五、性能优化六、示例代码七、未来发展方向八、结论摘要

python与QT联合的详细步骤记录

《python与QT联合的详细步骤记录》:本文主要介绍python与QT联合的详细步骤,文章还展示了如何在Python中调用QT的.ui文件来实现GUI界面,并介绍了多窗口的应用,文中通过代码介绍... 目录一、文章简介二、安装pyqt5三、GUI页面设计四、python的使用python文件创建pytho

QT实现TCP客户端自动连接

《QT实现TCP客户端自动连接》这篇文章主要为大家详细介绍了QT中一个TCP客户端自动连接的测试模型,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录版本 1:没有取消按钮 测试效果测试代码版本 2:有取消按钮测试效果测试代码版本 1:没有取消按钮 测试效果缺陷:无法手动停

基于Qt实现系统主题感知功能

《基于Qt实现系统主题感知功能》在现代桌面应用程序开发中,系统主题感知是一项重要的功能,它使得应用程序能够根据用户的系统主题设置(如深色模式或浅色模式)自动调整其外观,Qt作为一个跨平台的C++图形用... 目录【正文开始】一、使用效果二、系统主题感知助手类(SystemThemeHelper)三、实现细节

Qt实现文件的压缩和解压缩操作

《Qt实现文件的压缩和解压缩操作》这篇文章主要为大家详细介绍了如何使用Qt库中的QZipReader和QZipWriter实现文件的压缩和解压缩功能,文中的示例代码简洁易懂,需要的可以参考一下... 目录一、实现方式二、具体步骤1、在.pro文件中添加模块gui-private2、通过QObject方式创建

Qt QWidget实现图片旋转动画

《QtQWidget实现图片旋转动画》这篇文章主要为大家详细介绍了如何使用了Qt和QWidget实现图片旋转动画效果,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 一、效果展示二、源码分享本例程通过QGraphicsView实现svg格式图片旋转。.hpjavascript

跨国公司撤出在华研发中心的启示:中国IT产业的挑战与机遇

近日,IBM中国宣布撤出在华的两大研发中心,这一决定在IT行业引发了广泛的讨论和关注。跨国公司在华研发中心的撤出,不仅对众多IT从业者的职业发展带来了直接的冲击,也引发了人们对全球化背景下中国IT产业竞争力和未来发展方向的深思。面对这一突如其来的变化,我们应如何看待跨国公司的决策?中国IT人才又该如何应对?中国IT产业将何去何从?本文将围绕这些问题展开探讨。 跨国公司撤出的背景与

嵌入式QT开发:构建高效智能的嵌入式系统

摘要: 本文深入探讨了嵌入式 QT 相关的各个方面。从 QT 框架的基础架构和核心概念出发,详细阐述了其在嵌入式环境中的优势与特点。文中分析了嵌入式 QT 的开发环境搭建过程,包括交叉编译工具链的配置等关键步骤。进一步探讨了嵌入式 QT 的界面设计与开发,涵盖了从基本控件的使用到复杂界面布局的构建。同时也深入研究了信号与槽机制在嵌入式系统中的应用,以及嵌入式 QT 与硬件设备的交互,包括输入输出设

从戴尔公司中国大饭店DTF大会,看科技外企如何在中国市场发展

【科技明说 | 科技热点关注】 2024戴尔科技峰会在8月如期举行,虽然因事未能抵达现场参加,我只是观看了网上在线直播,也未能采访到DTF现场重要与会者,但是通过数十年对戴尔的跟踪与观察,我觉得2024戴尔科技峰会给业界传递了6大重要信号。不妨简单聊聊:从戴尔公司中国大饭店DTF大会,看科技外企如何在中国市场发展? 1)退出中国的谣言不攻自破。 之前有不良媒体宣扬戴尔将退出中国的谣言,随着2