




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第第6章章 嵌入式嵌入式linux图形用户接口图形用户接口第六章第六章 嵌入式嵌入式linuxlinux图形用户接口图形用户接口本章主要讲述嵌入式Linux图形用户界面(GUI,Graphic User Interface)的有关内容,即嵌入式GUI。本章首先简单介绍嵌入式GUI的相关内容;之后以Qt为例详细介绍其移植和编程操作;最后详细介绍基于QTE的Qtopia平台的移植和编程操作。GUI编程能够提高操作的人性化,优化产品性能,减轻用户认知负担,使程序更适合用户的操作需求。主要内容主要内容 第一节 嵌入式嵌入式GUI简介简介 第二节 嵌入式嵌入式GUI Qt 第三节 基于基于Qt技术的技术
2、的Qtopia 内容:内容:随着嵌入式系统的广泛应用,随着嵌入式系统的广泛应用,PDA、机顶盒、机顶盒、DVD/VCD播放机及播放机及WAP手机等嵌入式设备已经迅速普及,这些设备同时应该拥有华丽美手机等嵌入式设备已经迅速普及,这些设备同时应该拥有华丽美观、易于操作的图形用户界面。因此,在嵌入式系统中,特别是观、易于操作的图形用户界面。因此,在嵌入式系统中,特别是在一些消费类产品中,也逐渐出现了图形用户界面在一些消费类产品中,也逐渐出现了图形用户界面(GUI) 一、嵌入式一、嵌入式GUI的特点的特点 二、嵌入式二、嵌入式GUI的种类的种类第一节第一节 嵌入式嵌入式GUI简介简介 嵌入式系统一般不
3、会建立在庞大的操作系统以及GUI之上,比如Windows或X Window,它们对实时性的要求非常高,对GUI的要求也更高。而且,嵌入式系统往往是一种定制设备,对GUI的需求各不相同,有些系统只要求一些图形功能,而有些系统则要求完备的GUI支持,因此,GUI也必须是可定制的。由于受到当前嵌入式系统本身特点的影响,并受其发展限制,所以嵌入式系统中的GUI应该有如下特点: 占用的存储空间以及运行时占用资源少。占用的存储空间以及运行时占用资源少。 运行速度以及响应速度快。运行速度以及响应速度快。 可靠性高。可靠性高。 便于移植和定制。便于移植和定制。 第一节第一节 嵌入式嵌入式GUI简介简介 一、嵌
4、入式一、嵌入式GUI的特点的特点 目前,常用的嵌入式GUI系统有QT/Embedded、MicroWindows、MiniGUI和OenGUI等。下面对这几种常用的系统做一下简单介绍。1. QT/EmbeddedQT/Embedded是著名的QT库开发商TrollTech开发的基于FrameBuffer、面向嵌入式系统的QT版本。它的主要特点是界面美观、色彩配比好,使用与QT/Windows和QT/X11完全一致的API接口,许多基于QT的程序可以非常方便地移植到嵌入式系统;同时它具有丰富的模块,用户可以根据需要选择QT/Embedded的特性集合。QT/Embedded实现了对下层输入设备的
5、驱动和底层图形接口以及各基类和API。不过,QT/Embedded对于系统资源的要求非常高,运行时需要较大的存储空间和运行空间;而且它是基于C+实现的,而这种C+接口对于嵌入式系统中的某些应用来说显得比较臃肿。第一节第一节 嵌入式嵌入式GUI简介简介 二、嵌入式二、嵌入式GUI的种类的种类2. MicroWindowsMicrowindows是由美国CenturySoftware公司开发的开放源码的嵌入式GUI项目。它不需要其他图形系统的支持,可以充分利用Linux提供的Framebuffer机制来进行图形显示。同时在底层提供了对多种芯片的支持,并基本上用C语言实现,因此移植性较强。Micro
6、windows支持两种API:ECMAAPIW(类Win32API)和Nano-XAPIs。这些API对Win32和XWindow系统有很好的兼容性,使程序可以很容易地从其他系统上移植过来。由于MicroWindows为了与XWindow的兼容,采用了传统的基于UNIXSocket的客户端/服务器结构。此是,客户端的画图、窗口建立等操作都是通过套接字与服务器通信。在这种情况下,系统就非常依赖于UNIXSocket,而UNIXSocket的传递需要通过内核,这在一些对实时性要求比较高的系统里就不太有利。而且,Microwindows基本上是用C语言实现的,虽然增强了可移植性,但也导致了系统的运行
7、效率不高。第一节第一节 嵌入式嵌入式GUI简介简介 二、嵌入式二、嵌入式GUI的种类的种类3. MiniGUIMiniGUI是我国国内自主开发、比较成熟的一个图形用户界面系统,面向基于Linux的实时嵌入式系统,使用现有成熟的图形引擎(SV2GALib/LibGGI),采用类似WinCE的线程机制(目前MiniGUILite版本改用微客户端/服务器模式来提供对多进程的支持),集成了多字体和多字符集,支持硬件加速能力,充分利用显示内存。MiniGUI利用线程之间的同步操作,实现了客户线程和服务线程之间的微客户端/服务器结构,因为它的客户和服务器是同一进程的两个不同线程。它的核心实现主要体现在消息
8、队列数据结构的使用上。4. OpenGUIOpenGUI在Linux系统上已经存在很长时间了。这个库是用C+编写的,只提供C+接口。OpenGUI基于一个用汇编语言实现的x86图形内核,提供了一个高层的C/C+图形接口。OpenGUI提供了二维绘图函数原型、消息驱动的API及BMP文件格式支持。OpenGUI功能强大,使用方便,支持鼠标和键盘事件,在Linux上基于FrameBuffer实现绘图。由于OpenGUI基于汇编实现内核并利用MMX指令进行了优化,因此运行速度非常快,但是可移植性受到了影响。 第一节第一节 嵌入式嵌入式GUI简介简介 二、嵌入式二、嵌入式GUI的种类的种类一、一、Qt
9、与与Qt/Embedded简介简介 二、二、Qt的特点的特点 三、三、Qt的执行过程的执行过程 四、四、Qt的插槽机制的插槽机制 五、一个完整的五、一个完整的Qt程序程序 六、六、QtDesigner介绍介绍 第二节第二节 嵌入式嵌入式GUI Qt Qt是Trolltech公司的标志性产品,是一个跨平台的C+图形用户界面(GUI)工具包。Qt的最大特点就是支持多平台处理,因为Qt对不同平台的专门API进行了封装。Qt /Embedded是在嵌入式环境下所使用的Qt,具有Qt 在桌面系统的所有功能,是Trolltech公司为嵌入式设备上的图形用户界面和应用开发而定制的工具开发包第二节第二节 嵌入
10、式嵌入式GUI Qt 一、一、Qt与与Qt/Embedded简介简介 面向对象面向对象:Qt使用模块设计,并注重软件构件或元素的可重用性。构件支持构件支持:Qt提供信号(signal)和插槽(slot)概念,这是一种类型安全的方法,它允许回调,并支持对象之间在彼此不知道对方信息的情况下进行合作,这使得Qt适合于真正的构件编程。友好的联机帮助友好的联机帮助:Qt提供了大量的联机参考文档,有超文本HTML方式,也有Linix帮助手册页和补充说明。对于初学者,其中的指南将一步步地介绍如何进行Qt编程。便利性便利性: Qt是一种跨平台的GUI工具包,它对编程者隐藏了在处理不同窗口系统时潜在的问题,Qt
11、定义了一些类来隐藏在不同操作系统上不同处理方式下的细节问题。第二节第二节 嵌入式嵌入式GUI Qt 二、二、Qt的特点的特点 用户自定义用户自定义:使用其他一些工具包时经常会遇到这样一种情况,没有真正适合需求的组件,声称自定义的组件对用户来说就像一个黑匣子。而在Qt中生成用户自定义的组件非常简单,而且易于修改组件的行为。国际化国际化:Qt为本地化应用提供了完全的支持,所有用户界面文本都可以基于消息翻译表被翻译成各国语言,Qt还支持双字节16位国际字符标准。丰富的API函数:Qt为专业应用提供了大量的函数,在Qt的API中含有大约250个C+类,大多数类都是GUI专有的。可用户化外观可用户化外观
12、:Qt支持主题,基于Qt的应用程序能够在Windows外观、Motif外观,以及其他一些用户化外观主题之间切换。完整的一套组件工具完整的一套组件工具:Qt编程的基本模块称之为组件,组件是用户界面的组成部分,Qt含有用来创建专业外观的用户界面所需要的所有组件第二节第二节 嵌入式嵌入式GUI Qt 二、二、Qt的特点的特点 Qt的执行过程如图6-2所示。Qt应用程序初始化之后,在Qt库的支持下响应相应的处理事件并且返回。第二节第二节 嵌入式嵌入式GUI Qt 三、三、Qt的执行过程的执行过程 该实现过程需要Qt最主要的三个基类:QObject类、QApplication类和QWidget类。QOb
13、jectQObject类是所有能够处理信号、插槽和事件的Qt对象的基类,能够创建带有父对象及其名字的对象,对象的父对象可以看作该对象的所有者。QApplicationQApplication类负责GUI应用程序的控制流和主要设置。它包括主事件循环体,负责处理和调度所有来自窗口系统和其他资源的事件,并且处理应用程序的开始、结束以及会话管理,还包括系统和应用程序方面的设置。QWidgetQWidget类是所有用户接口对象的基类,它继承了QObject类的属性。组件是用户界面的单元组成部分,它接收来自鼠标、键盘和其他窗口系统的事件,并且绘制到屏幕上。QWidget类有很多成员函数,但一般不直接使用,
14、而是通过子类继承来使用其函数功能。例如,QPushButton、QlistBox等都是它的子类。第二节第二节 嵌入式嵌入式GUI Qt 三、三、Qt的执行过程的执行过程 在Qt程序中,事件处理采用了信号(signal)和插槽(slot)机制。信号和插槽机制的好处是不需要调用翻译表,节省资源。利用信号和插槽进行对象间的通信是Qt最主要的特征之一。 当对象状态发生改变的时候,发出signal通知所有的slot接收signal,尽管它并不知道哪些函数定义了slot,而slot也不知道要接收怎样的signal。signal和slot机制真正实现了封装的概念,但它们之间并不是一一对应的。 第二节第二节
15、嵌入式嵌入式GUI Qt 四、四、Qt的插槽机制的插槽机制 显然,由右图可知,同一个信号可以连接到多个插槽,多个信号也可以连接到同一个插槽之中。随时可以建立一个连接,或者取消一个连接。不过取消一个连接不是很常用,因为当一个对象被删除后,它所包含的连接都会被自动取消。本节给出一个例子,首先产生一个Qapplication类的实例,然后定义窗口实例并把它作为程序的主窗口,最后调用show()和exec()方法,使自动界面作为主界面,程序进入消息循环。代码如下:#include #include int main(int argc, char *argv) QApplication app (arg
16、c, argv); QLabel *hello = new QLabel(Hello Qt/Embedded!, 0); app.setMainWidget(hello); hello-show(); return app.exec();第二节第二节 嵌入式嵌入式GUI Qt 五、一个完整的五、一个完整的Qt程序程序 Qt应用程序可以用Qt Desinger来编写。Qt Designer的功能十分强大,并且提供了大量可供编程使用的组件,从而省略了许多重复性的工作,可以减少程序的开发周期 Qt Designer可以新建工程,并且在工程文件中自动生成关于窗体文件的.cpp、.h文件和main.cp
17、p文件。其中,.cpp文件和.h文件也可以通过uic工具生成。之后可以通过progen命令生成,通过tmake工具生成makefile文件,再make即可得到相应的Qt应用程序。第二节第二节 嵌入式嵌入式GUI Qt 六、六、QtDesigner介绍介绍 一、一、Qtopia简介简介 二、二、Qtopia的功能的功能 三、三、Qtopia编程编程 第三节第三节 基于基于Qt技术的技术的Qtopia Qtopia是由Trolltech公司基于Qt/Embedded库,专门针对采用嵌入式Linux系统的消费电子设备所开发的一套应用程序包和开发库。 Qtopia平台是用于创建基于Li
18、nux设备的应用程序框架,并且包含丰富的用户应用程序。Qtopia的设计利用了嵌入式Linux的高度优化、高内存效率的各种功能,为众多的多应用程序设备提供主要的通用功能。Qtopia软件分为4个主要层次 第三节第三节 基于基于Qt技术的技术的Qtopia 一、一、Qtopia简介简介 Qtopia主要有以下功能:可定制的用户界面可定制的用户界面:Qtopia支持每像素24位,并且集成了可缩放矢量图形(SVG)。增强的输入法增强的输入法:多种键盘输入法。广泛的国际化支持广泛的国际化支持:包括扩展的Unicodc支持,以及从右至左的文本模式。安全执行安全执行:这是在Linux的安全特点基础之上构建
19、。Java集成集成:Java应用程序可以与Qtopia无缝集成。应用程序管理应用程序管理:使用Qtopia平台的服务器/启动程序来控制进程间通信。插件程序框架插件程序框架:Qtopia平台的功能可以通过插件程序框架进行扩展。SQL数据库数据库:Qtopia平台的API使应用程序脱离了对数据库的依赖。紧凑的视窗系统紧凑的视窗系统:Qtopia平台免除了嵌入式Linux对X11的需求。开放的开发环境。 第三节第三节 基于基于Qt技术的技术的Qtopia 二、二、Qtopia的功能的功能 在Qtopia平台上发布应用程序时,需要三个文件:执行文件、启动器文件和图标文件。执行文件就是前面讲到的编译链接
20、后生成的Qt可执行文件,可以根据需要编译链接生成宿主机上运行的程序或开发板上运行的程序。图标文件是一个2222大小的.png文件。启动器文件是一个.desktop文件,用于描述Qtopia应用程序的属性,如可执行文件名称、桌面图标文件名称、所属程序集类型以及帮助文件名称等。以progressbar程序为例,创建一个名为progressbar.desktop的启动器文件,具体内容如下:Desktop EntryComment=A Progressbar ProgramExec=progressbarIcon=progressbarType=ApplicationName=progressbar第三节第三节 基于
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 企业绿色采购2025年SDGs实践与供应链优化报告
- 传统食品工业化生产变革:2025年技术改造与产业链优化策略报告
- 传统食品工业食品添加剂生产过程节能降耗2025年技术改造报告
- 甘肃省武威五中学2024年数学七上期末监测试题含解析
- 绵阳市重点中学2025届数学七年级第一学期期末调研试题含解析
- 北京朝阳区第十七中学2025届七年级数学第一学期期末复习检测试题含解析
- 南通大学《商务交流综合实践》2023-2024学年第一学期期末试卷
- 吉林省长春吉大附中力旺实验中学2025届八年级数学第一学期期末学业水平测试模拟试题含解析
- 河北省张家口市宣化区2024-2025学年数学八年级第一学期期末达标检测试题含解析
- 市政工程生产安全事故应急演练计划
- 2024年离婚协议书范文模范本两个孩子
- 2024年北京中考地理试卷
- 杭四中分班考数学试题卷
- 会议系统施工施工方法及工艺要求
- 收割机买卖合同正规范本版
- 临床成人ICU患者外周动脉导管管理要点
- 81.GJB 1112A-2004 军用机场场道工程施工及验收规范
- DZ∕T 0130-2006 地质矿产实验室测试质量管理规范(正式版)
- 计划开、竣工日期和施工进度网络图112
- 2024初中数学竞赛七年级竞赛辅导讲义七年级专题01 质数那些事
- 德宏傣族景颇族自治州缅籍“三非”人员管理问题研究的开题报告
评论
0/150
提交评论