Qt/Embedded简介
Qt/Embedded(简称Qt/E)是一个专门为嵌入式系统设计图形用户界面的工具包。
Qt为各种系统提供图形用户界面的工具包,Qt/E就是Qt的嵌入式版本。
用Qt/E开发的应用程序要移植到不同平台时,只需要重新编译代码,而不需要对代码进行修改。
可以随意设置程序界面的外观,方便地为程序连接数据库,将程序与Java
集成。嵌入式系统地要求是小而快速,而Qt/E 就能帮助开发者为满足这些要求开发强壮地应用程序, 可以使程序本地化。
Qt/E具有是模块化和可裁性。开发者可以选取所需要的一些特性,而裁剪掉所不需要的。这样通过选择所需要的特性,Qt/E的映像变得很小,最小只有600K 左右。同Qt一样,Qt/E也是用C++写的,虽然这样会增加系统资源消耗,但是却为开发者提供了清晰的程序框架,使开发者能够迅速上手,并且能够方便地编写自定义的用户界面程序。
由于Qt/E是作为一种产品推出,所以它有很好的开发团体和技术支持,这对于使用Qt/E的开发者来说,方便开发过程,并增加了产品的可靠性。
1.Qt/Embedded
特征
(1)面向应用服务的特征如下:
l拥有同Qt
一样的API。开发者只需要了解Qt
的API,不用关心程序所用到的系统与平台。
l它的结构很好地优化了内存和资源地利用。
l拥有自己的窗口系统。Qt/E不需要一些子图形系统,它可以直接对底层的图形驱动进行操作。
l模块化。开发者可以根据需要自己定制所需要的模块。
l代码公开以及拥有十分详细的技术文档帮助开发者。
l强大的开发工具。
l与硬件平台无关。Qt/E
可以应用在所有主流平台和CPU
上,支持所有主流的嵌入式Linux。
(2)对于在Linux上的Qt/E的基本要求只不过是Frame
Buffer设备和一个C++编译器(如gcc)。Qt/E同时也支持很多实时的嵌入式系统,如QNX 和WindowsCE。面向系统级服务特征如下:
l提供压缩字体格式。即使在很小的内存中,也可以提供一流的字体支持。
l支持多种的硬件和软件的输入。
l支持Unicode,可以轻松地使程序支持多种语言。
l支持反锯齿文本和Alpha
混合的图片。
Qt/E
虽然公开代码和技术文档,但是它不是免费的,当开发者的商业化产品需要用到他的运行库时,必须向Trolltech
公司支持license费用(每套3
美金),如果开发的应用产品仅用研究会教学用途,则不需要付费。
Qt/E由于平台无关性和提供了很好的GUI编程接口,在许多嵌入式系统中得到了广泛的应用,是一个成功的嵌入式GUI
产品。
2.Qt/Embedded
与Qt/X11
Qt/Embedded通过Qt
API与LinuxI/O设施直接交互,成为嵌入式Linux端口。同Qt/X11相比,Qt/Embedded很节省内存,其不需要一个X服务器或是Xlib库,它在底层摈弃了Xlib,采用framebuffer(帧缓存)作为底层图形接口。Qt/E与Qt/X11在系统级所处位置比较如图7.9。
图7.9 Qt/E与Qt/X11在系统中的位置
在图7.9中显示的内容可知,Qt/Embedded将外部输入设备抽象为keyboard和mouse 输入事件。Qt/Embedded的应用程序可以直接写内核缓冲帧,这可避免开发者使用繁琐的Xlib/Server系统。