1.2 Qt简史
Qt工具包最初是在1995年5月变为公众可用的。它最初由Haavard Nord(Trolltech的CEO)和Eirik Chambe-Eng(Trolltech的总裁)开发。Haavard和Eirik是在位于挪威特隆赫姆的挪威科技学院相识的,他们都在那里获得了计算机科学的硕士学位。
Haavard对C++图形用户界面开发的兴趣始于1988年,当时他被一家瑞典公司委托设计并且开发一个C++图形用户界面工具包。
几年后,在1990年夏天,Haavard和Eirik因为一个超声波图像方面的C++数据库应用程序在一起工作。这个系统要求能够在UNIX、Macintosh和Windows上都能运行。那个夏天中的一天,Haavard和Eirik出去散步享受阳光。当他们坐在公园的一个长椅上,Haavard说:“我们需要一个面向对象的显示系统。”由此引发的讨论奠定了他们即将创建的面向对象的多平台图形用户界面工具包的智力基础。
Haavard于1991年开始和Eirik合作设计、编写最终成为Qt的这些类。随后的一年,Eirik提出了“信号和槽”的设想——一个简单并且有效的强大的图形用户界面编程范例。Haavard实践了这个想法,并且建立了一个手写代码实现。到1993年,Haavard和Eirik当时已经开发出了Qt的第一个图形核心并且能够实现他们自己的窗口部件。同年末,Haavard提议他们一起开展并且创建“世界上最好的C++图形用户界面工具包”的业务。
1994年成为两个程序员不幸的一年,他们没有客户,没有资金,只有一个未完成的产品,却希望闯入一个稳定的市场。非常幸运的是他们的妻子都有工作并且愿意支持他们的丈夫。在这两年Haavard和Eirik认为需要继续开发他们的产品并且开始盈利。
他们选择“Q”作为类的前缀,是因为该字母在Haavard的Emacs字体中看起来非常漂亮。“t”代表“工具包(toolkit)”,是从“Xt”,X工具包中获得的灵感。公司于1994年3月4日创立,最初名为“Quasar Technologies”,后更名为“Troll Tech”,现在改为“Trolltech”。
1995年5月,通过Haavard大学时的一个教授的联系,挪威Metis公司与他们签订了一份基于Qt进行软件开发的合同。大约同一时间,Trolltech雇佣了Arnt Gulbrandsen,正是他设计并实现了一套有独创性的文档系统,并且对Qt的代码也做出了贡献。
1995年5月20日,Qt 0.90被上传到sunsite.unc.edu。6天后,在comp.os.linux-an nounce上发布,这是Qt的第一次公开发布。Qt可以被同时用于Windows和UNIX开发,它在两种平台上提供了相同的应用程序编程接口。从第一天起,Qt就提供两种许可版本:一种是进行商业开发所需的商业许可版本,另一种是进行开源开发的自由软件版本。Metis的合同确保了Trolltech的发展,在10个月之内没有人购买Qt的商业许可。
1996年,European Space Agency购买了10份Qt商业许可,成了第2个Qt客户。凭着坚定的信念,Eirik和Haavard又雇佣了另外一个开发人员。Qt 0.97在5月底发布,并且在1999年9月24日,Qt1.0面世。在这一年底,Qt已经发展到了1.1的版本,共有来自8个不同国家的客户,他们购买了18份商业许可。这一年,在Matthias Ettrich的带领下,创立了KDE项目。
Qt1.2在1997年4月发布。Matthias Ettrich利用Qt建立KDE的决定使得Qt成为在Linux环境下开发C++图形用户界面的实际标准。Qt1.3在1997年9月发布。
Matthias Ettrich本人也在1998年离开学术界加入TrollTech,当年9月最后一个1系列的版本1.40发布。1999年6月Qt2.0发布。Qt2.0有很多架构上的改变,比它的前几个版本功能更为强大,更为成熟。它还具备了40个新类和Unicode支持。Qt2有了一个新的开源许可,Q公共许可(Q Public License,QPL),它遵循了开源定义。在1999年8月,Qt赢得了LinuxWorld的最佳库/工具奖。大约在这个时候,Trolltech Pty Ltd(澳大利亚)建立了。
Trolltech在2000年发布了Qt/Embedded。它被设计为可以运行在嵌入式Linux设备上,并且提供了它自己的窗口系统作为X11的轻型替代品。现在Qt/Embedded和Qt/X11除了提供商业许可之外,还可以提供被广泛使用的GNU通用许可(GNU General PublicLicense,GPL)。到2000年年底,Trolltech已经创建了Trolltech Inc.(美国),并发布了第一个Qtopia版本,一个手持设备环境。Qt/Embedded在2001年和2002年两次获得LinuxWorld“Best Embedded Linux Solution”(最佳嵌入式Linux解决方案)奖。
Qt3.0在2001年发布。现在Qt可以用于Windows、UNIX、Linux、嵌入式Linux和MacOS X。Qt3.0提供了42个新类和超过50万行的代码。Qt3.0在2002年赢得了Software Development Tools的“Jolt Productivity Aword(震撼生产力奖)”。
2005年夏,Qt4.0发布,它大约有500个类和9 000多个函数,Qt4比以往的任何一个版本都要全面和丰富,并且它已经裂变成多个函数库,从而使开发人员可以根据自己的需要只链接所需要的Qt部分。相对于以前的所有Qt版本,Qt4的进步是巨大的,它彻底地对高效易用的模板容器、高级的模型/视图功能、快速而灵活的二维绘图框架和强大的统一字符编码标准的文本查看和编辑类进行了大量改进,更不必说对那些贯穿整个Qt类中的成千上万个小的改良了。现如今,Qt4具有如此广泛的特性,以至于Qt已经超越了作为图形用户界面工具包的界限,逐渐成长为一个成熟的应用程序开发框架。Qt4也是第一个能够在其所有可支持的平台上既可用于商业开发又可用于开源开发的Qt版本。
同样在2005年,奇趣公司在北京开设了一家办事处,以便为中国及其销售区域内的用户提供服务和培训,并且为Qt/Embedded Linux和Qtopia提供技术支持。
通过获取一些非官方的语言绑定件(Langauge Binding),非C++程序员也已早就开始使用Qt,特别是用于Python程序员的PyQt语言绑定件。2007年,公司发布了用于C#程序员的非官方语言绑定件Qyoto。同年,Qt Jambi投放市场,它是一个官方支持的Java版Qt应用程序编程接口。
自奇趣公司(现已被Nokia收购)诞生以来,Qt的声望经久不衰,而且至今仍然保持高涨。取得这样的成绩不但说明了Qt的质量,而且也说明了人们都喜欢使用它。在过去的10年中,Qt 已经从一个只被少数专业人士所熟悉的“秘密”产品,发展到了如今遍及全世界拥有数以千计的客户和数以万计的开源开发人员的产品。