Programming 版 (精华区)
发信人: Roe (Roe), 信区: Programming
标 题: 芝麻开门之Qt
发信站: 哈工大紫丁香 (2001年12月08日14:30:21 星期六), 站内信件
总介
作者:同步快梭
提起Qt,可能很多人都不太熟悉或者没听说过,它是什么?它能为我们干什么?
如果把Qt比喻成VC中的MFC,你可能就可以大概了解它的功能与定位,尽管这样的比喻并不
精确。
Qt是挪威Trolltech公司开发的面向对象、高度封装的跨平台C++图形用户界面应用软件框
架,它为用户提供了一个开发商业级别、多平台应用软件的开发环境。目前支持以下三个
平台:
? Windows 平台,包括Windows 95/98/ME, NT4, 2000 和XP。
? X11 平台,包括Linux, Solaris, HP-UX, Irix, AIX 以及其他一些Unix 的变种。
? Mac 平台。
此外Qt还为嵌入式应用程序的开发提供了一个嵌入式版本。
用过linux的用户都知道,linux发行商一般提供两套图形管理程序,一个是kde,另一个是
gnome,其他还有一些,但以这两个为主。Kde就是以Qt为基础设计的一套管理器。
截止到本稿的写作日,Qt的最新版本为3.0正式版,由于Trolltech是一个商业公司,因此
Qt并不完全按GPL的准则发行。最初发行Qt时源代码是不公开的,这导致了部分linux开发
者的反感,他们决定重新设计一个图形管理器与kde抗衡,这就是gnome的由来。
现在Qt通过三种许可协议发放:
1、商业开发,使用对象是开发商用软件的程序员;
2、教学专用,使用对象是用来教学Qt的各个学院、大学;
3、GPL,使用对象是自由软件的开发者。
用收费差异来衡量的话,可分为企业版、专业版与免费版,其中X11平台下的各个版本都提
供源代码。Windows平台下只有企业版与专业版提供源代码且版本并不同步,如当前的最新
版本为3.0版,但windows免费版本是2.3版。
Qt的跨平台特征在代码级实现而非运行级,这与JAVA有本质区别。Qt通过各个类向开发人
员提供统一的成员函数与变量,底层则使用操作系统相关的代码进行实现,简而概之,就
是一次编写,到处编译。因此用Qt开发的应用程序其执行效率要比同等的Java程序高许多
。可用于工控等实时性要求很高的程序。
Qt的特征包括以下几点:
数据库编程
Qt 3.0 内建了一组独立于各平台和数据库的API,专门用来调用SQL 数据库,这组API为O
racle、PostgreSQL以及MySQL提供ODBC以及特殊数据库驱动程序支持。Qt 3.0内置GUI和底
层数据库同步的数据检测支持功能,而Qt Designer完全支持这些新的控制功能,为数据库
提供应用软件快速开发工具(RAD)解决方案。
Qt Designer
Qt Designer是一个全功能的图形用户界面开发工具,与Delphi的界面较为相似。它支持包
括菜单和工具栏的应用软件主窗口的交互式设计,以及完全支持可定制模式的窗口小部件
。此外,Qt Designer还内置了C++编辑器,允许用户在RAD环境中直接编辑源代码。
Qt Linguist
Qt Linguist是一个本地化工具,能够让用户把基于Qt开发的程序从一种语言简单、智能地
转变成另外一个语言,适合于开发国际版软件。它能够把程序中所有可见的文本转换成任
何支持统一字符编码标准(Unicode)和指定平台的语言,它最主要的特征是一个适应特殊目
的编辑工具和多语言术语智能数据库。一旦完成新的翻译,数据库将保存这些术语,以便
以后再次使用。此外,Qt Linguist还完全支持Unicode 3。
Qt Assistant
Qt Assistant是Qt 3.0提供的一个独立应用软件,它能够浏览Qt的类文档,Qt Designer和
Qt Linguist手册。此外,它还提供了目录检索,内容纵览,书签,历史记录以及在页面内
搜索等功能。
国际化文本显示
Qt 3.0支持多内码混合的文本,设置是在系统没有安装Unicode字体的情况下,以及完全支
持right-to-left和bi-directional型的语言,像阿拉伯语(Arabic )和希伯来语(Hebr
ew)。
支持HTTP网络协议
Qt 3.0的网络编程模块提供一个通过HTTP协议交换数据的API(以前版本已经实现FTP协议
)。
支持多显示器
Qt 3.0允许应用软件支持多个显示器。在Unix平台上,Qt 3.0支持Xinerama和传统的多显
示器技术,而Windows平台上则是Windows 98 和2000支持的虚拟桌面技术。Qt 3.0提供一
个独立于系统平台的API以实现上述技术。
新的组件模式
这个特征类似于Windows下的COM(虽然COM也号称平台无关,但目前似乎仅在Windows平台
上应用),Qt 3.0提供一个独立于系统平台的API,以现实共享库加载等功能。
美观的GUI界面实现
Qt 3.0支持浮动窗口,扩展了风格引擎,支持大量的标准窗口部件, 包括进度显示条(pr
ogressbar),旋转框(spinbox)以及表格标题(table header)等。此外,它还为交互式
文本编辑增加了图形界面控制。可接近性支持
Qt 可控制与提供有关可接近性体系结构的信息, 通过Qt提供的标准工具可开发视觉或肢体
残疾用户使用的应用软件(例如Windows Magnifier 和Narrator)。
64位安全
Qt 3.0支持即将推出的最新一代64位硬件。
Qt是我所接触的一个很好的类库(可能用平台更合适),虽然我用得最多的还是MFC。这个
很好并不单单是它的类可以为我们的程序开发减少工作量,当然这也是一个原因。更重要
的是我们可以从Qt本身学到很多体系结构的设计。虽然Linux本身就是一个很好的体系,但
如果一个开发人员要从Linux的原码开始学起全盘掌握的话可能要花费相当多的时间。Qt整
套架构不算小,这使得它有着丰富的功能,诸如图形、网络、数据库、各种控件、IO操作
以及与COM类似的接口,但是也并不是非常的庞大以至于大多数人搞上两三年还搞不清楚其
细节。Qt是面向对象设计的,各种功能封装在类中,整套架构清晰明了,和VC相比VC似乎
隐藏了更多的细节。同时Qt是开放源码的,又有商业公司对它精心呵护,加上世界各地开
发人员的踊跃参与使它兼具实用性与理论性。用心地体会Qt,我们可以在较短的时间内提
升自己的总体设计水平,而不仅仅是编程。
备注:Qt官方站点为http://www.trolltech.com,相关软件可在其上下载。Qt的中文资料
极少,我和一些网友翻译了一部分,在http://www.joyinternet.net/cn/qt(编者:也可
从C++ View网站Resources中找到链接),如有兴趣翻译文档的朋友请与我联系:feedbac
k@joyinternet.net 或qq: 14504123。
附Qt Designer的界面快照。
--
※ 来源:·哈工大紫丁香 bbs.hit.edu.cn·[FROM: dianqi.hit.edu.cn]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:10.529毫秒