什么是Qt?

    作者:课课家教育更新于: 2016-08-04 17:41:07

    大神带你学编程,欢迎选课

      Qt,和wxWidget一样都是标准的C++库,但是它的语法却类似于java中Swing。使用Qt开发的软件,相同的代码可以在任何支持的平台上编译与运行,而不需要修改源代码。会自动依平台的不同,表现平台特有的图形界面风格。网上也有一种QT,不过这种QT指的是语音聊天软件。而我们将在下文介绍的是前者,而不是QT语音软件。下面我们来了解一下Qt简介、Qt的优点以及历史。

      Qt简介

    qt的logo

       由挪威 TrollTech 公司出品,Qt是一个跨平台的C++图形用户界面库,我们平时所说所使用的Qt,准确的来说是它的GUI编程部分。Qt提供给应用程序开发者建立图形用户界面所需要的功能,并且Qt很容易扩展。基本上,Qt和X Window上的Motif、Openwin、GTK等图形界面库和Windows平台上的MFC、OWL、VCl以及ATl是相同类型的东西。但是要知道的是Qt中的重量级软件KDE是使Qt在自由软件界脱颖而出的真正原因,在自由软件界中有众多 Widgets (如 Lesstif,Gtk,EZWGL,Xforms,fltk 等等)。

      Qt的优点

    Qt图标图片

       1)具有优良的跨平台特性:Qt支持一下的操作系统Microsoft Windows 95/98, Microsoft Windows NT, Linux, Solaris, SunOS, HP-UX, Digital UNIX (OSF/1, Tru64), Irix, FreeBSD, BSD/OS, SCO, AIX, OS390,QNX 等等。

      2)Qt是面向对象的:Qt对于用户开发而言是十分方便的,因为Qt良好的封装机制令Qt的模块化程度非常高并且可重用性好。而且在Qt中也提供了一种称为signals/slots 的安全类型用以代替了callback,这样子各个元件之间的协同工作都会变得简单。

      3)Qt具有丰富的API:在Qt中包括了至少250个的C++类,并且还提供了基于模板的 collections,serialization,file,I/O device,directory management,date/time 类。甚至还包括正则表达式的处理 功能。

      4)Qt支持2D/3D图形渲染,并且支持OpenGL。

      5)Qt支持大量的文档开发。

      6)有XML的支持。

      在上文我们说到了由于Qt中的重量级软件KDE才使得Qt在众多的Widgets中脱颖而出。但是或许你不知道的是,KDE也是使得Trolltech公司要承受巨大压力的原因之一。从而有了自由软件的圣战"KDE/QT .VS. Gnome/Gtk"。下面我们说说这场圣战。

      圣战

       在Unix的图形界面一向是以MIT的X Window系统作为标准,但是在当时的商业应用上却分为了两大流派。分别是以SUN公司领导的Openlook和IBM/HP所领导的OSF(Open Software Foundation) 的 Motif。在双方进行了多年的竞争之后,IBM的Motif最终打败了Openlook称为了最普遍使用的界面库。但是后来在SUN和IBM双发的妥协下有推出了一个CDE作为标准的图形界面库,但是它的价格却相当的昂贵。

       而此时微软的Windows图形界面发展速度非常快,并且Unix的后起之秀Linux也急需一个免费并且可靠的图形界面。

       KDE的全称是K Desktop Environment,由开发图形排版工具Lyx的德国人 Matthias Ettrich 在1996年十月发起的KDE计划。而且可以看出KDE的开发就是为了针对CDE的。当初由于Qt并不遵循GPL,所以在Qt将其Unix版本自由发布之后,KDE受到了很多自由软件开发者的攻击。(因为KDE本身是采用GPL宣言的,但是KDE是使用Qt来作为它的底层库)

       这种利用非自由软件开发的行为被自由软件的开发者认为是违背了GPL的精神,所以当时的GUN信徒们兵分两路。一路去制作Harmonny,试 图重写一套兼容于 Qt 的替代品,另一路是由一个 26 岁的墨西哥程序员 Miguel De Icaza 领导 下重新开发一套叫 GNOME(GNU Network Object Enviroment)来替代 KDE。

       再后来又发生了一场类似于上面Motif VS Openlook 相 似的圣战,因为Linux的老大RedHat不喜欢KDE的授权,所以专门派出了几个全职的程序员加入GNOME进行开发。而反观Trolltech公司为了KDE曾经数次修改Qt的版权,从成立KDE Free Qt基金会到采用QPL,可以说是费尽心思。但是由于Qt/KDE采用的是C++开发,而GTK/Gnome采用的是C,在这一方面后者的门槛相对比较低。而也是因为这个优势,导致了自由软件开发者更加偏向于Gnome。

       可是无奈的是,先走一步的KDE在当时推出的KDE1.1.2版本十分稳定,而Gnome在急忙中推出的1.0版本稳定性极差。有人甚至开玩笑的说这个版本的Gnome还没有KDE 1.0 Alpha稳定。而当时双发的开发者在网上吵的天翻地覆,最后连Linux之父Linus说了一句喜欢用KDE都会被攻击。

       圣战到了2000年已经是第三个年头。在这期间,大事件一件接一件的发生:首先是由一批从apple公司出来的工程师成立了一个叫Eazel 的公司替 GNOME 设计界面,然后又有一批GNOME 程序员成立了一个 Helix Code 公司替 GNOME 提供商业支持。但是在这时让自由软件开发者所期待的的KDE2.0也终于发布,这个也可以说是在当时最为庞大的自由软件之一了。KDE2.0 不仅包括了KDE 本身,还包括KOffice 套件,和集成开发环境Kdevelop 等等大批软件,其主力软件Kounqueror 也是第一个可以同微软的Internet Exploer 相抗衡的浏览器。

       而SUN公司马上和Red Hat 公司, Eazel 公司,Helix Code 等一批公司成立了一个GNOME 基金会并且宣布会将重量级办公软件和Gnome进行集成。但是Trolltech公司不仅没有坐以待毙并且给了他们一个强有力的回击,就是在2000年的10月将Qt的free edition变为GPL宣言,彻底的解决了KDE的版权问题。并且在解决了这个问题之后,又相继推出了嵌入式Qt。

       如果用户使用C++,对于库的稳定性和健壮性的要求比较高,而且还希望可以跨平台开发的话,那么使用Qt是一个比较好的选择。但是在你使用的时候还是要注意,虽然Qt的Free Edition 采用了 GPL 宣言,但是如果你开发 Windows 上的 Qt 软件或者是 Unix 上的商业软件,还是需要向 Trolltech 公司支付版权费用的。

      文章的最后我们来看看Qt发展史上的里程碑

       1996 Oct KDE 组织成立

       1998 Apr 05 Trolltech 的程序员在 5 天之内将 Netscape5.0 从 Motif 移植到 Qt 上

       1998 Apr 08 KDE Free Qt 基金会成立

       1998 Jul 09 Qt 1.40 发布

       1998 Jul 12 KDE 1.0 发布

       1999 Mar 04 QPL 1.0 发布

       1999 Mar 12 Qt 1.44 发布

       1999 Jun 25 Qt 2.0 发布

       1999 Sep 13 KDE 1.1.2 发布

       2000 Mar 20 嵌入式 Qt 发布

       2000 Sep 06 Qt 2.2 发布

       2000 Oct 05 Qt 2.2.1 发布

       2000 Oct 30 Qt/Embedded 开始使用 GPL 宣言

       2000 Sep 04 Qt free edition 开始使用 GPL

          最后要说一下的是Qt在2008年的时候正式被诺基亚收购,而诺基亚最为看重的是qt中的qtopia,主要用于嵌入式设备上的库,可见诺基亚在手机ui上发展的决心。文中并没有说到Qt的使用方法,但是简单来说,在Qt之中包含有许多的类,每个类中有包含有许多的函数,这些函数就是为我们开发应用程序的时候所需的图形化界面所准备的,你只需要根据你的产品需求、客户的要求,用QT做出简洁化,人性化,友好的用户界面。

课课家教育

未登录