Qt框架首度为公众可用是在1995年5月。它最初由Haavard Nord(奇趣科技公司的CEO)和Eirik Chambe-Eng(公司总裁)开发而成。Haavard和Eirik在位于挪威特隆赫姆的挪威科技学院相识,在这,他们都获得了计算机科学硕士学位。

Haavard对C++图形用户界面开发的兴趣始于1988年,当时一家瑞典公司委托他开发一套C++图像用户界面框架。几年后,在1990年的夏天,Haavard和Eirik因为一个超声波图像方面的C++数据库应用程序而在一起工作。这个系统需要一个能够在UNIX、Macintosh和Windows上都能运行的图像用户界面。在那个夏天中的某天,Haavard和Eirik一起出来散步,享受阳光,当他们坐在公园的一条长椅上时,Haavard说:“我们需要一个面向对象的显示系统。”由此引发的讨论,为他们即将创建的面向对象的、跨平台的图形用户界面框架奠定了智力基础。

1991年,Haavard和Eirik开始一起合作设计、编写最终成为Qt的那些类。在随后的一年中,Eirik提出了“信号和槽”的设想——一个简单并且有效的强大的图像用户编程规范。而现在,他已经可以被多个工具包实现。Haavard实践了这一想法,并且据此创建了一个手写代码的实现系统。到1993年,Haavard和Eirik已经开发出了Qt的第一套图像内核程序,并且能够利用它实现他们自己的一些窗口部件。同年末,为了创建“世界上最好的C++图形用户界面框架”,Haavard提议一起进军商业领域。

1994年成为两位年轻程序员不幸的一年,他们没有客户,没有资金,只有一个未完成的产品,但是他们希望能够闯进一个稳定的市场。幸运的是,他们的妻子都有工作并且愿意为她们的丈夫提供支持。在这两年里,Haavard和Eirik人为,他们需要继续开发产品并且从中赚的收益。

之所以选择字母“Q”作为类的前缀,是因为该字母在Haavard和Eirik字体中看起来非常漂亮。随后添加的字母“t”代表工具包“Toolkit”,这是从“Xt”——一个X工具包的命名方式中获得的灵感。公司于1994年3月4日成立。最初的名字还是“Quasar Thechnologies”,随后更名为“Troll Tech”,而公司今天的名字则是“Trolltech”。

1995年4月,通过Haavard就读过的大学的一位教授的联系,挪威的Metis公司与他们签订了一份基于Qt进行软件开发的合同。大约在同一时间,公司雇用了Amt Gulbrandsen,在公司工作的六年时间里,他设计并实现了一套独具特色的文档系统,并且对Qt的代码也做了不少贡献。

1995年5月20日,Qt0.9被上传到sunsite.unc.edu。6天后,在comp.os.linux.announce上发布。这是Qt第一个公开发行的版本。Qt既可以在Windows上的程序开发,又可以用于UNIX上的程序开发,而且在这两种平台上,都提供了相同的应用程序编程接口。从第一天起,Qt就提供了两个版本的软件许可协议版本。一个是进行商业开发所需要的商业版本,一个是适用于开源开发的自由软件许可版本。Metis的合同确保了公司的发展,然而,在长达十个月的时间内,在没有任何人购买Qt的商业许可协议。

1996年3月,欧洲航天局(European Space Agency)购买了10分Qt的商用许可协议,他成了第二个Qt用户。凭着坚定的信念,EEirik和Haavard有雇佣了另外一名开发人员。Qt 0.97在同年5月底正式发布,随后在1996年9月24日,Qt1.0正式面世。到了这一年的年底,Qt的版本已经发展到了1.1.共有来自8个国家的客户买了18分商用许可协议。也就是在这一年,在Matthias Ettrich的带领下,创立了KDE项目。

Qt 1.2于1997年4月发布。Matthias Ettrich利用Qt建立KDE的决定,使Qt成为Linux环境下开发C++图像用户界面的事实标准。Qt1.3于1997年9月发布。

Matthias Ettrich在1998年加入公司,并且在当年9月,发布了Qt 1系列的最后一个版本——V1.40.199年6月,Qt 2.0发布,该版本有有一个新的开源许可协议——Q公共许可协议(QPL,Q Public License),他与开源的定义一直。1999年8月,Qt赢得了LinuxWorld的最佳奖/工具奖。大约在这个时候,Trolltech Pty Ltd成立了。

2000年,公司发布了Qt/Embedded Linux,它用于Linux嵌入式设备。Qt/Embedded Linux提供了自己的窗口系统,并且可以作为X11的轻量级替代产品。现在,Qt/X11和Qt/Embedded Linux 除了提供商业许可协议之外,还提供了广为使用的GNU通用公共许可协议(GPL,General Public License)。2000年底,成立了Trolltech Inc,并发布了Qtopia的第一版,他是一个用于移动电话和掌上电脑的环境平台。Qt/Embedded Linux在2001年和2002年两次获得了Linux World的“Best Embedded Linux Solution”奖,Qtopia Phone也是在2004年获得了同样的荣誉。

2001年,Qt 3.0发布。现在,Qt已经可用于Windows、MacOS、NUIX、和Linux(桌面和嵌入式)平台。Qt 3 提供了42个新类和超过500000行代码。Qt3是自Qt2以来前进历程中最为重要的一步,他在诸多方面上都进行了改良,包括本地化和统一字符编码标准的支持、全新的文本查看和编辑窗口部件,以及一个类似于Perl正则表达式的类等。2002年,Qt3赢得了Software Develpment Times 的“Jolt Productivity Award”。

2005年夏,Qt 4.0发布,他大约有500个类和9000多个函数,Qt4.0比以往的任何一个版本的都要全面和丰富,并且他已经裂变成多个函数库,从而是开发人员可以根据自己的需要只连接需要的Qt部分。相对于以前的Qt版本,Qt4 的进步是巨大的,他不仅彻底的对高效易用的模板容器、高级的模型/视图功能、快速而灵活的二维绘图框架和强大的统一字符编码标准的文本查看和编辑类进行了大量的改进,更不必说对那些贯穿整个Qt类中的成千上万个小的改良。现如今Qt已经超越了作为图形用户界面工具包的界限,逐渐成长为一个成熟的应用程序开发框架。Qt4 也是第一个能够在其所有可支持的平台上既可以用于商业开发又可以用于开源开发的Qt版本。

同在2005年,公司在北京开设了一家办事处,以便于中国及其销售区域内的用户提供服务和培训,并且为Qt/EmdeddedLinux 和 Qtopia提供技术支持。

通过获取一些非官方的语言绑定件(language bindings),非C++程序员也可以使用Qt,特别适用于Python程序员的PyQt语言绑定件。2007年,公司也发布了用于C#程序员的非官方语言绑定键Qyoto。同一年,QtJambi投放市场,他的一个官方支持的Java版本Qt应用程序编程接口。

自奇趣科技公司诞生以来,Qt的声望经久不衰,而且至今依旧持续高涨。取得这样的城进不进说明了Qt的质量,而且也说明人们都非常喜欢应用它。在过去的十年中,Qt已经从一个只被少数专业人士所熟悉的“秘密”产品,发展到了如今遍及全世界拥有数以千计的客户以及数以万计的开源开发人员的产品。

参考文献:C++ GUI with Q4编程

Qt小传——从诞生到发展、繁荣相关推荐

  1. 促进计算机的发展,计算机的诞生和发展促进了人类社会的进步和繁荣

    <计算机的诞生和发展促进了人类社会的进步和繁荣>由会员分享,可在线阅读,更多相关<计算机的诞生和发展促进了人类社会的进步和繁荣(2页珍藏版)>请在人人文库网上搜索. 1.办公自 ...

  2. 计算机诞生发展分类特点及应用,计算机的诞生与发展,及其特点

    计算机基本常识 一.计算机的概念: 计算机是一种能迅速而高效的自动完成信息处理的电子设备,它能按照程序对信息进行加工.处理.存储. 二.计算机的诞生与发展 1.诞生:1946年,美国为计算弹道轨迹而研 ...

  3. JSON 是如何诞生与发展的?

    作者 | 猪哥 责编 | Elle JSON作为目前Web主流的数据交换格式,是每个IT技术人员都必须要了解的一种数据交换格式.尤其是在Ajax和REST技术的大行其道的当今,JSON无疑成为了数据交 ...

  4. 关于人工智能(一) 诞生与发展

    人工智能的诞生及发展 人工智能对于我们来说其实并不是什么新鲜产物,早在1956年的夏季美国的达特茅斯(Dartmouth)大学就产生了. 其实算起来也就比福大创立早了那么2年而已(福州大学于1958年 ...

  5. 第一课 初识Photoshop Photoshop的诞生和发展

    Photoshop的诞生和发展 Photoshop创始人:诺尔兄弟 Thomas Knoll(托马斯·诺尔)最初编写了一个叫做Display的程序,在哥哥John Knoll (约翰·诺尔)让他帮忙编 ...

  6. RISC诞生与发展的缩影

    转载自:RISC诞生与发展的缩影 [注:本文缩减版已发表在电脑报2013年第44期 A.新闻周刊,这个版本是写给实验室内部刊物<国重快讯>的加长版,写作过程中得到中科院计算所包云岗老师的大 ...

  7. Lesson 7(12)神经网络的诞生与发展机器学习基本概念

    欢迎来到<2021 PyTorch深度学习实战>课程的第二周!在今天的课程之前,我们已经介绍了GPU硬件.进行了深度学习框架PyTorch的部署与安装,并且学习了深度学习基本数据结构Ten ...

  8. Qt的简单介绍,发展和由来

    一.Qt的介绍 1. Qt是图形用户界面程序框架,也可以称作Qt库,能做界面的还有MFC(只能在windows下使用),GTK+ 2. Qt的由来和发展 1. Qt的历史: Qt是1991年奇趣科技公 ...

  9. 世界第一台电脑_电脑的诞生与发展

    电子计算机俗称电脑(英文:Computer),是一种用于高速计算的"电子"计算器.它不但可以进行数值计算,还具有存储记忆数据的能力.是能够按照程序运行,自动.高速处理数据的智能设备 ...

最新文章

  1. IDEA构建一个mybatis项目
  2. Java中main函数只能调用同类中的静态方法?
  3. geth JavaScript Console
  4. select * 映射错误_高性能IO模型分析-浅析Select、Poll、Epoll机制(三)
  5. 如何创建虚拟硬盘 + os 读取硬盘参数代码
  6. 【洛谷】【二分答案+最短路】P1462 通往奥格瑞玛的道路
  7. 新版 chrome 将原生支持图片懒加载!
  8. 一文讲述G6实现流程图绘制的常用方法
  9. R语音:解决cor.test报错的 'y'必需是数值矢量
  10. 十三、栅栏CyclicBarrier
  11. pycharm的项目文件中包括什么_一个完整的项目管理流程包括什么?
  12. 测试一软件测试基础知识总结
  13. C# 判断输入的字符是不是数字
  14. Android APP启动图标尺寸
  15. 中安网培***入门教程
  16. 游戏手柄延迟测试软件,六款免费网络延迟测试工具
  17. 计算机属于电器还是学习用品,大学生必备的3件学习用品,学生表示:很实用!...
  18. linux离线安装postgresql,离线安装PostgreSQL
  19. 杭州女程序员自述:疫情之下被迫离职,仲裁说理被公司索赔百万
  20. pytest assert 封装

热门文章

  1. jQuery EasyUI使用教程之创建可折叠面板
  2. Android的一些疑问
  3. Java基础01 从HelloWorld到面向对象
  4. ASP.NET GridView嵌套DataList实例
  5. Flying to the Mars
  6. java版DVD影碟片出租赁系统C/S模式 java电影购票系统课程设计
  7. NYOJ 118 修路方案(次小生成树)
  8. 2014广州赛区比赛总结
  9. /bin/sh -c的必要性
  10. LeetCode 430. Flatten a Multilevel Doubly Linked List