Qt的版本和历史
2007-12-04 14:14
前言 最近学习了一下Qt,发现它真的是一个很好的东西。仅仅一套就代码可以跨越Linux、Win32、MacOSX和各种Unix平台,几乎涵盖了所有主流的操作系统。而且还提供了构建(qmake)、可视化设计(uic和qdesigner)、国际化(linguist)、文档系统(assistant)等一系列非常好用的工具。尤其是文档系统,绝对可以称得上是出色。 然而,在学习过程中,我遇到的一个困扰就是Qt家族复杂的版本(对于初次接触的人来说,甚至可能有点混乱)。到Trolltech的ftp上看看,有一大堆由这些单词的不同组合命名的包:qt、qtopia、win、x11、 mac、free、opensource、commerical、embedded……,让人无所适从。为此专门花了几个小时把查了查这些包的来龙去脉,记在这里,希望对别的初学者也能有所帮助。如果有与实际不符的地方,也请各位大虾批评指正。 版本详述 Qt Qt是 Trolltech的最早也是最有名的产品,它最初是作为一个跨平台(Win32、Mac、Unix)的C++GUI库开发的,但随着它的发展,其中增加了一系列与GUI无关的库,如Xml、Socket、Thread等等,现在Qt已经成为了一个通用的C++跨平台类库。到了4.0版,更是将GUI部分从核心库分离出来,以利于开发无GUI的服务程序。 Qt的版本号分为三部分,例如4.1.2。大版本号之间会有很大的不同,通常类库的结构会进行很大的调整,因此在大版本号发生变化时,新的Qt库无法与原来的程序保持源码级兼容。中间的版本变化通常会引入新的类库和组件,但现有类库的结构一般不会改变。小版本号的变化通常是错误修正,一般会保证二进制兼容。 Qt的授权是分为两条线,商业版和开源版。如果使用商业版的Qt,那么开发出的程序可以是私有的和商业的;如果使用的是开源版的Qt,由于其使用的是GPL协议(不是LGPL),那么可发出的程序也必须是GPL的。 Qt 的版本是按照不同的图形系统来划分的,目前分为四个版本:Win32版,适用于Windows平台;X11版,适合于使用了X系统的各种Linux和 Unix平台;Mac版,适合与苹果MacOSX;embedded版,适合于具有帧缓冲(frame buffer)的Linux平台。 Qt-embedded和Qtopia Qt 在刚出现的时候,对于Linux和Unix系统,只有构建于Xlib之上的X11版。但随着Linux操作系统在嵌入式领域的应用日渐广泛,Qt推出了嵌入式的版本Qt-embedded(Qte)。由于嵌入式受限的硬件环境往往难以运行庞大的X服务器,Qt的嵌入式版跳过了Xlib和XServer直接操作帧缓冲,可以在速度和体积上有很大的提高。 Qtopia最初是sourceforge.net上的一个开源项目,全称是Qt Palmtop Environment,是构建于Qte之上一个类似桌面系统的应用环境,包括了PDA和手机等掌上系统常见的功能如电话簿、日程表等。现在Qtopia 已经成为了Trolltech的又一个主打产品,为基于Linux操作系统的PDA和手机提供了一个完整的图形环境。 值得特别注意的是 Qte和Qtopia之间的关系。在版本4之前,Qte和Qtopia是不同的两套程序,Qte是基础类库,Qtopia是构建于Qte之上的一系列应用程序。但从版本4开始,Trolltech将Qte并入了Qtopia,并推出了新的Qtopia4。在该版中,原来的Qte被称为Qtopia Core,作为嵌入式版本的核心,既可以与Qtopia配合,也可以独立使用。原来的Qtopia则被分成几层,核心的应用框架和插件系统被称为 Qtopia Platform,上层的应用程序则按照不同的目标用户分为不同的包,如Qtopai PDA,Qtopia Phone。 还有一个需要注意的就是Qtopia没有出过3.x版,直接从2.20版跳到了4.x版,我想这主要是为了整合Qte,并与Qt的版本保持同步。 版本列表 下面是我整理出的Qt的一些主要版本的变化表(没有包括Mac版) 日期 Win32/X11 Embedded 说明 1998-10-01 1.41 我了解到的最早一版 1999-06-25 2.00 2.0版 1999-11-12 1.45 最后一个1.xx 2000-11-13 2.22 最早一个嵌入式版 2001-10-15 3.00 3.00 3.0版 2001-11-05 2.32 最后一个X11的2.xx版 2004-09-13 2.38 最后一个嵌入式的2.xx版 2005-06-27 4.00 4.00 4.0版 2006-03-29 4.12 4.12 目前的版本 |