深度解析 QT 介绍 跨平台界面库

移动开发
Trolltech也针对嵌入式环境推出了Qt Embedded产品。与桌面版本不同,Qt Embedded已经直接取代了X Server及X Library等角色,将所有的功能全部整合在一起。

本文介绍 QT 介绍 跨平台界面库,它是一个跨平台的C++图形用户界面库,由挪威TrollTech公司出品,目前包括Qt、基于FrameBuffer的Qtopia Core、快速开发工具Qt Designer和国际化工具Qt Linguist等部分。Qt支持所有的UNIX系统,当然也包括Linux系统,还支持WinNT/Win2k、Windows 95/98平台。

基本上Qt同X-Window上的Motif、Openwin、GTK等图形界面库和Windows平台上的MFC、OWL、VCL、ATL是同类型的。不过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提供了一种称为signals/slots 的安全类型来替代callback,这使得各个元件之间的协同工作变得十分简单。

(3)丰富的API。

Qt包括多达250个以上的C++类,还提供基于模板的collections、serialization、file、I/O device、directory management和date/time类。甚至还包括正则表达式的处理功能。

(4)支持2D/3D图形渲染,支持OpenGL。

(5)大量的开发文档。

(6)XML支持。

但是真正使得Qt在自由软件界的众多Widgets(如Lesstif、Gtk、EZWGL、Xforms及fltk等)中脱颖而出的还是基于Qt的重量级软件KDE。Qt虽然是商业公司的产品,但是走的却是开源路线,提供免费下载,全部都是开放源代码,非商业用途亦采用GPL的版权宣告,著名的Open Source"KDE"项目便是采用Qt开发的。

Trolltech也针对嵌入式环境推出了Qt Embedded产品。与桌面版本不同,Qt Embedded已经直接取代了X Server及X Library等角色,将所有的功能全部整合在一起。

Qt Embedded同样具有跨平台的特点,省掉了不少移植软件的功夫,这样的概念和Java十分接近。同时它还采用模块化设计,其最大的好处是有弹性,Qt Embedded号称最小,可以缩到800 KB左右,最多可以长到3 MB(for Intel x86),这样的弹性也让Qt Embedded更适合在嵌入式环境下生存。

Qt Embedded延续了Qt在X上的强大功能,在底层摒弃了X lib,仅采用FrameBuffer作为底层图形接口。同时,将外部输入设备抽象为keyboard和mouse输入事件,底层接口支持键盘、GPM鼠标、触摸屏及用户自定义的设备等。

Qt Embedded类库完全采用C++封装。丰富的控件资源和较好的可移植性是Qt Embedded最为优秀的一方面。它的类库接口完全兼容于同版本的Qt-X11,使用X下的开发工具可以直接开发基于Qt Embedded的应用程序QUI界面

与前两种GUI不同的是,Qt Embedded的底层图形引擎只能采用FrameBuffer,这就注定了它是针对高端嵌入式图形领域的应用而设计的。由于该库的代码追求面面俱到,以增加它对多种硬件设备的支持,造成了其底层代码比较凌乱,各种补丁较多的问题。Qt Embedded的结构也过于复杂和臃肿,很难进行底层的扩充、定制和移植,尤其是用来实现signal/slot机制的moc文件。

Qt Embedded当前已经升级为Qtopia Core和Qtopia Core,继承了Qt4的新技术,包括:高性能渲染引擎、模板容器类及基于行为的主窗口架构,改进的功能特点包括文本渲染与多线程技术。当编译Qtopia Core时,可以去除不用的功能,以最小化软件的占用空间。

小结:QT 介绍 跨平台界面库的内容介绍完了,本篇属于纯介绍性的文章,希望这些理论知识能帮助到你吧。

责任编辑:zhaolei 来源: 互联网
相关推荐

2011-06-29 15:02:25

Qt 模板库

2011-06-21 18:02:14

Qt 动态 链接库

2011-09-06 16:00:08

QT平台静态库

2011-06-21 13:52:18

Qt 界面

2011-06-21 15:48:41

2011-06-21 15:58:20

Qt 数据库

2012-07-06 15:10:39

跨平台工具QtNokia

2011-06-27 09:15:21

QT Creator

2011-07-01 14:39:08

Qt Quick

2011-06-23 14:27:48

QT QLibrary 动态库

2011-06-09 14:56:53

QT 编译

2011-09-06 10:36:10

QT平台

2011-06-16 15:17:16

2011-06-22 16:50:09

Qt 进程 通信机制

2011-06-29 10:46:01

Qt Eembedded Linux

2011-06-30 14:16:25

QT 中文 乱码

2011-06-09 11:11:35

QT 静态库 动态库

2011-06-24 13:08:34

Qt Qt 4.5.3 移植

2011-06-28 10:29:15

QT 桌面 程序

2014-05-30 15:50:46

DIGIA嵌入式Qt
点赞
收藏

51CTO技术栈公众号