基于Qt的嵌入式GUI系统的特点及实现方法.doc
《基于Qt的嵌入式GUI系统的特点及实现方法.doc》由会员分享,可在线阅读,更多相关《基于Qt的嵌入式GUI系统的特点及实现方法.doc(6页珍藏版)》请在三一文库上搜索。
1、基于Qt的嵌入式GUI系统的特点及实现方法1 引言图形用户界面系统(GUI)是系统级的底层软件, 它可以和文件系统、操作系统内核等一起构成一个完整的操作系统。GUI为用户提供了与应用系统交互的可视化通道, 同时GUI 为程序员提供了一种编程模式, 即GUI 负责系统的可视化界面的生成、管理以及系统与用户之间的信息交互, 而程序员只需专注于对实际应用的分析。嵌入式GUI 除了以上特点, 还要求简单、直观、可靠、占用资源小且反应快速, 以适应嵌入式系统硬件资源有限的条件。另外, 由于嵌入式硬件本身的特殊性, 嵌入式GUI 应具备高度可移植性和可裁剪性, 以适应不同硬件平台的需求。2 国内外几种嵌入
2、式GUI 系统实现方式与特点为了适应日益扩大的嵌入式Linux 市场的需求, 国内外的相关研究机构和开发商已经或者正在开发一大批嵌入式图形系统项目和原型产品。其中较为着名的开放源码项目有Tiny X(小型的X 窗口系统)、Microwindows、MiniGUI、Qt/Embedded 等。Tiny X:是标准X- windows 在嵌入式系统的小巧实现, 作为一个图形环境, X- window 是成功的, 但由于在体系接口上的原因, 限制了它对游戏、多媒体的支持能力。Microwindows: 典型的基于Server/Clinent 体系结构的GUI系统, 提供了相对完善的图形功能和一些高级
3、的特性, 如Alpha混合、三维支持等。该系统为了提高运行速度, 也改进了基于Socket 套接字的X 实现模式, 采用了基于消息机制的Server/Client 传输机制。MiniGUI:由国内自由软件开发人员设计开发, 是一种面向嵌入式系统或者实时系统的图形界面支持系统。MiniGUI 具有资源消耗小、速度快、效率高的特点, 但目前还不是很成熟, 主要表现在:体系结构不完善, 自有图形引擎的功能较弱, 控件的可定制性不好, 基于线程机制的系统脆弱性在复杂应用中更为突出, 尤其是缺少一个方便的图形开发环境。Qt/Embedded: 缩写为Qt/E, Qt 是Trolltech 公司的产品,
4、是一个多平台的C+图形用户界面应用程序框架, 它注重于给用户提供精美的图形用户界面所需要的所有元素。而且它是基于一种面向对象的思想, 所以用户对其对象的扩展是相当容易的, 并且他还支持真正的组件编程。这也是本文将要重点介绍的内容。3 Qt /E 的介绍及开发环境的建立3.1 Qt/E 体系结构3.1.1 交叉开发平台Qt 是用于本地化跨平台应用开发的领先性框架。Qt 所有平台的API 是一致的。这就意味着在一种平台上写的应用程序, 在新的平台上经过重新编译和连接便能运行于该新平台上。因此, 软件开发者通过开发和维护一种平台的应用源码来用于多种平台的开发。同样, 嵌入式Qt 也可以移植基于Qt
5、的软件到嵌入式Linux 中。Qt 可提供的平台, 如图1:Qt/Windows: 用于Microsoft Windows xp、2000、NT4、Me/98.Qt 库使用Windows 的GDI API 来实现, 并且使用微软的窗口系统; Qt/X11:包括Linux、HP- UX、Sun Solaris、Digital UNIX、SGI Irix、IBMAIX 等。Qt 库使用X11 库来实现, 并且使用X 窗口系统; Qt/E:包括一个完整的窗口系统, 并允许设计者轻易地加入各种显示设备和硬件输入设备(如鼠标、键盘、触摸屏等); Qt/Mac:用于Mac OS X 平台。Qt 对不同平台
6、的专门API 进行了封装, 如文件处理、网络(操作, 协议)、进程处理、线程、数据库访问等。3.1.2 Qt/E 的窗口系统Qt/E 的窗口系统采用一种客户/服务器体系结构, 如图2所示。一个典型的嵌入式Qt 窗口系统一般包括一个服务器进程、一个或多个客户进程(简称服务器和客户)。服务器负责为客户和其本身分配显示区域、生成鼠标和键盘事件。而客户则通过与服务器通信来申请显示区域, 接收鼠标和键盘事件。客户可以直接访问所分配的显示区域, 以便为用户提供GUI 服务。服务器和客户通过共享内存的方式来传递所有分配显示区域上的信息。服务器:服务器维护着一组区域, 当窗口被创建、移动、改变大小和破坏时,
7、通过这组区域来改变每个客户的申请。该区域存放在共享内存中, 在执行绘图操作时, 客户可以从中读取信息; 客户:嵌入式Qt 为客户提供的API 与标准的Qt API 是一致的。当Qt/E 客户使用Qt API 画线时, Qt/E 库直接访问显存, 完成画线工作。嵌入式Qt 客户库还负责处理所有的绘画操作, 另外, 他还处理那些定制的窗口装饰(如标题条等)。3.1.3 Qt/E 图形引擎的实现Qt/E 的底层图形引擎基于帧缓冲(frame buffer)。帧缓冲是标准显示设备驱动接口, 使用MMAP 系统将帧缓存映射到应用程序虚拟内存空间, 这样应用程序可以访问它。帧缓冲驱动程序的实现分为两个方面
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 Qt 嵌入式 GUI 系统 特点 实现 方法
链接地址:https://www.31doc.com/p-3411681.html