嵌入式用户图形界面编程中嵌教育-嵌入式linux开发_第1页
嵌入式用户图形界面编程中嵌教育-嵌入式linux开发_第2页
嵌入式用户图形界面编程中嵌教育-嵌入式linux开发_第3页
嵌入式用户图形界面编程中嵌教育-嵌入式linux开发_第4页
嵌入式用户图形界面编程中嵌教育-嵌入式linux开发_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

嵌入式用户图形界面编程嵌入式图形系统简介基于Qt/Embedded的嵌入式GUI设计嵌入式用户图形界面编程中嵌教育-嵌入式linux开发共26页,您现在浏览的是第1页!1、嵌入式图形系统简介1.1Qt/Embedded Qt/Embedded(简称QtE)是一个专门为嵌入式系统设计图形用户界面的工具包。Qt是挪威Trolltech软件公司的产品,它为各种系统提供图形用户界面的工具包,QtE就是Qt的嵌入式版本。嵌入式用户图形界面编程中嵌教育-嵌入式linux开发共26页,您现在浏览的是第2页!1.1Qt/Embedded 使用QtE,开发者可以:用QtE开发的应用程序要移植到不同平台时,只需要重新编译代码,而不需要对代码进行修改。可以随意设置程序界面的外观。可以方便地为程序连接数据库。可以使程序本地化。可以将程序与Java集成。嵌入式用户图形界面编程中嵌教育-嵌入式linux开发共26页,您现在浏览的是第3页! 同Qt一样,QtE也是用C++写的,虽然这样会增加系统资源消耗,但是却为开发者提供了清洗的程序框架,使开发者能够迅速上手,并且能够方便地编写自定义的用户界面程序。 由于QtE是作为一种产品推出,所以它有很好的开发团体和技术支持,这对于使用QtE的开发者来说,方便开发过程,并增加了产品的可靠性。嵌入式用户图形界面编程中嵌教育-嵌入式linux开发共26页,您现在浏览的是第4页!与硬件平台无关:QtE可以应用在所有主流平台和CPU上。支持所有主流的嵌入式Linux,对于在Linux上的QtE的基本要求只不过是FrameBuffer设备和一个C++编译器(如gcc)。Qte同时也支持很多实时的嵌入式系统,如QNX和WindowsCE。提供压缩字体格式:即使在很小的内存中,也可以提供一流的字体支持。支持多种的硬件和软件的输入。支持Unicode,可以轻松地使程序支持多种语言。支持反锯齿文本和Alpha混合的图片。嵌入式用户图形界面编程中嵌教育-嵌入式linux开发共26页,您现在浏览的是第5页!QtE虽然公开代码和技术文档,但是它不是免费的,当开发者的商业化产品需要用到他的运行库时,必须向Trolltech公司支持license费用(每套3美金),如果开发的东西不用于商业用途则不需要付费。QtE由于平台无关性和提供了很好的Gui编程接口,在许多嵌入式系统中得到了广泛的应用,是一个成功的嵌入式GUI产品。嵌入式用户图形界面编程中嵌教育-嵌入式linux开发共26页,您现在浏览的是第6页!1.2MicrowindowsMicrowindows支持多种外部设备得输入,包括液晶显示器、鼠标和键盘等。在嵌入式Linux平台上,从Linux2.2.x的内核开始,为了方便图形的显示,使用了framebuffer的技术。Microwindows完全支持Linux最新framebuffer技术,支持每个象素1位、2位、4位、8位、16位、24位和32位的色彩空间/灰度,并且通过调色板技术将RGB格式的颜色空间转换成目标机器上最相近的颜色,然后显示出来。嵌入式用户图形界面编程中嵌教育-嵌入式linux开发共26页,您现在浏览的是第7页!1.3MiniGUIMiniGUI是由北京飞漫软件技术有限公司主持的一个自由软件项目(遵循GPL条款),其目标是为基于Linux的实时嵌入式系统提供一个轻量级的图形用户界面支持系统。MiniGUI为应用程序定义了一组轻量级的窗口和图形设备接口。利用这些接口,每个应用程序可以建立多个窗口,而且可以在这些窗口中绘制图形。用户也可以利用MiniGUI建立菜单、按钮、列表框等常见的GUI元素。嵌入式用户图形界面编程中嵌教育-嵌入式linux开发共26页,您现在浏览的是第8页!1.2QTE和Qtopia开发模型1.2.1QTE与QT/X11比较LinuxKernelFrame-bufferQT/EmbeddedQT/X11XlibXWindowServerQTAPIApplicationSourceCode嵌入式用户图形界面编程中嵌教育-嵌入式linux开发共26页,您现在浏览的是第9页!1.2.2Qtopia介绍Qtopia是一种全方位的应用开发平台,它可用于基于嵌入式linux的PDA,移动电话,webpads,以及其他移动计算设备。Qtopia构建于Qt/Embedded之上,是专为基于linux的消费电子产品提供和创建图形用户界面而设计的。常见的有两种版本:QtopiaPhone版:专为基于linux的智能电话和多功能电话设计。QtopiaPDA版:专为基于linux的PDA设计。嵌入式用户图形界面编程中嵌教育-嵌入式linux开发共26页,您现在浏览的是第10页!1.2.3Qt/Embedded开发模型嵌入式软件开发通常都采用交叉编译的方式进行,基于Qt/Embedded和Qtopia的GUI应用开发也采用这样的模式。先在宿主机上调试应用程序,调试通过后,经过交叉编译移植到目标板上。Qt/Embedded直接写入帧缓存,在宿主机上则是通过qvfb(virtualframebuffer)来模拟帧缓存。qvfb是X窗口用来运行和测试Qtopia应用程序的系统程序。qvfb使用了共享内存存储区域(虚拟的帧缓存)来模拟帧缓存并且在一个窗口中模拟一个应用程序来显示帧缓存,显示的区域被周期性的改变和更新。嵌入式用户图形界面编程中嵌教育-嵌入式linux开发共26页,您现在浏览的是第11页!1.2.4Qt/Embedded信号与插槽(1)概述 信号与插槽是QT自定义的一种通信机制,它独立于标准的从C/C++语言。他的实现必须借助于moc(MetaObjectCompiler)的QT工具,他是一个C++预处理程序,为高层次的事件处理自动生成所需要的附件代码。 所谓图形用户接口的应用就是对用户的动作作出响应。程序员则必须把事件和相关代码联系起来,这样才能对事件作出正确的响应。嵌入式用户图形界面编程中嵌教育-嵌入式linux开发共26页,您现在浏览的是第12页!(2)信号与插槽的实现 信号: voidmysignal(intx); 插槽: voidmyslot(intx); 信号与插槽关联: connect(abutton,SIGNAL(clicked),SLOT(quit));嵌入式用户图形界面编程中嵌教育-嵌入式linux开发共26页,您现在浏览的是第13页!3.2设置链接库当在PC上模拟Qtopia的运行时,需要用到对应Qt版本的库文件,因此需要修改/etc/ld.so.conf文件以适应刚刚安装的Qt(Redhat安装时带有Qt库,但不适合我们最新安装的版本),修改后的ld.so.conf文件内容如下:/sbc2410/x86-qtopia/qt/lib/sbc2410/x86-qtopia/qtopia/lib/usr/kerberos/lib/usr/X11R6/lib/usr/lib/sane修改完此文档后,为了让刚刚安装的库生效,必须运行ldconfig。至此Qt的开发缓建已经建立。嵌入式用户图形界面编程中嵌教育-嵌入式linux开发共26页,您现在浏览的是第14页!嵌入式系统地要求是小而快速,而QtE就能帮助开发者为满足这些要求开发强壮地应用程序。QtE是模块化和可裁剪地。开发者可以选取他所需要的一些特性,而裁剪掉所不需要的。这样,通过选择所需要的特性,QtE的映像变得很小,最小只有600K左右。嵌入式用户图形界面编程中嵌教育-嵌入式linux开发共26页,您现在浏览的是第15页!总的来说,QtE拥有下面一些特征:拥有同Qt一样的API;开发者只需要了解Qt的API,不用关心程序所用到的系统与平台它的结构很好地优化了内存和资源地利用。拥有自己的窗口系统:QtE不需要一些子图形系统。它可以直接对底层的图形驱动进行操作。模块化:开发者可以根据需要自己定制所需要的模块。代码公开以及拥有十分详细的技术文档帮助开发者。强大的开发工具。嵌入式用户图形界面编程中嵌教育-嵌入式linux开发共26页,您现在浏览的是第16页!Trolltech公司在QtE的基础上开发了一个应用的环境—Qtopia,这个应用环境为移动和手持设备开发。其特点就是拥有完全的、美观的GUI,同时它也提供可上百个应用程序用于管理用户信息、办公、娱乐、Internet交流等。已经有很多公司采用了Qtopia来开发他们主流的PDA。嵌入式用户图形界面编程中嵌教育-嵌入式linux开发共26页,您现在浏览的是第17页!1.2MicrowindowsMirowindows是嵌入式系统中广为使用的一种图形用户接口,其官方网站是:.。这个项目的早期目标是在嵌入式Linux平台上提供和普通个人电脑上类似的图形用户界面。作为PC上X-Windows的替代品,Microwindows提供了和X-Windows类似的功能,但是占用的内存要少得多,根据用户得配置,Microwindows占用得内存资源在100KB-60KB。嵌入式用户图形界面编程中嵌教育-嵌入式linux开发共26页,您现在浏览的是第18页!1.2MicrowindowsMicrowindows的核心基于显示设备接口,因此可移植行很好,microwindows有自己的Framebuffer,因此它并不局限于Linux开发平台,在eCos、FreeBSD、RTEMS等操作系统上都能很好地运行。此外,Microwindows能在宿主机上仿真目标机。这意味着基于Linux的Microwindows应用程序的开发和调试可以在普通的个人电脑上进行,而不需要使用普通嵌入式软件的“宿主机-目标机”调试模式,从而大大加快了开发速度。Mincrowindows是完全免费的一个用户图形系统。嵌入式用户图形界面编程中嵌教育-嵌入式linux开发共26页,您现在浏览的是第19页!1.3MiniGUI用户可以将MiniGUI配置成“MiniGUI-Threads”或者“MiniGUI-Lite。运行在MiniGUI-Threads上的程序可以在不同的线程中建立多个窗口,但所有的窗口在一个进程中运行。相反,运行在MiniGUI-Lite上的每个程序是单独的进程,每个进程也可以建立多个窗口。MiniGUI-Threads适合于具有单一功能的实时系统,而MiniGUI-Lite则适合于类似于PDA和瘦客户机等嵌入式系统。嵌入式用户图形界面编程中嵌教育-嵌入式linux开发共26页,您现在浏览的是第20页!1.2.1QTE与QT/X11比较QT/Embedded通过QtAPI与LinuxI/O设施直接交互,成为嵌入式linux端口。同Qt/X11相比,QT/Embedded很节省内存,其不需要一个X服务器或是Xlib库,它在底层摈弃了Xlib,采用framebuffer(帧缓存)作为底层图形接口。同时,将外部输入设备抽象为keyboard和mouse输入事件。QT/Embedded的应用程序可以直接写内核缓冲帧,这可避免开发者使用繁琐的Xlib/Server系统。嵌入式用户图形界面编程中嵌教育-嵌入式linux开发共26页,您现在浏览的是第21页!1.2.2Qtopia介绍Qtopia特色:视窗操作系统;同步窗口;开发环境;本地化支持;游戏和多媒体;PIM应用程序;输入法;个性化选项;internet应用程序;java集成;无线支持;嵌入式用户图形界面编程中嵌教育-嵌入式linux开发共26页,您现在浏览的是第22页!1.2.3Qt/Embedded开发模型宿主机移植所需工具及环境变量声明:工具软件描述变量声明Tmake-1.11生成Makefile文件TMAKEDIR/TMAKEPATH/PATHQt-x11-2.3.2Qvfb-虚拟帧缓存工具Uic-用户界面编辑器DesignerQt图形设计器LD_LIBRARY_PATH_/PATHQt-embedded-2.3.7Qt库支持libqte.soQTEDIR/LD_LIBRARY_PATH/PATHQtopia-free-1.7.0应用程序开发包桌面环境QPEDIR/LD_LIBRARY_PATH/PATH嵌入式用户图形界面编程中嵌教育-嵌入式linux开发共26页,您现在浏览的是第23页!所有从QObject或其子类(例如Qwidget)派生的类都能够包含信号和插槽。当对象改变状态时,信号就由该对象发射(emit)出来。插槽用于接收信号,但它们是普通的对象成员函数。一个插

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论