嵌入式用户图形界面编程

上传人:yx****d 文档编号:242972286 上传时间:2024-09-13 格式:PPT 页数:26 大小:60.50KB
返回 下载 相关 举报
嵌入式用户图形界面编程_第1页
第1页 / 共26页
嵌入式用户图形界面编程_第2页
第2页 / 共26页
嵌入式用户图形界面编程_第3页
第3页 / 共26页
点击查看更多>>
资源描述
,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,单击此处编辑母版标题样式,嵌入式用户图形界面编程,嵌入式图形系统简介,基于,Qt/Embedded,的嵌入式,GUI,设计,1、嵌入式图形系统简介,1.1 Qt/Embedded,Qt/Embedded(,简称,QtE),是一个专门为嵌入式系统设计图形用户界面的工具包。,Qt,是挪威,Trolltech,软件公司的产品,它为各种系统提供图形用户界面的工具包,,QtE,就是,Qt,的嵌入式版本。,1.1 Qt/Embedded,使用,QtE,,开发者可以:,用,QtE,开发的应用程序要移植到不同平台时,只需要重新编译代码,而不需要对代码进行修改。,可以随意设置程序界面的外观。,可以方便地为程序连接数据库。,可以使程序本地化。,可以将程序与,Java,集成。,嵌入式系统地要求是小而快速,而QtE就能帮助开发者为满足这些要求开发强壮地应用程序。,QtE是模块化和可裁剪地。开发者可以选取他所需要的一些特性,而裁剪掉所不需要的。这样,通过选择所需要的特性,QtE的映像变得很小,最小只有600K左右。,同Qt一样,QtE也是用C+写的,虽然这样会增加系统资源消耗,但是却为开发者提供了清洗的程序框架,使开发者能够迅速上手,并且能够方便地编写自定义的用户界面程序。,由于QtE是作为一种产品推出,所以它有很好的开发团体和技术支持,这对于使用QtE的开发者来说,方便开发过程,并增加了产品的可靠性。,总的来说,,QtE,拥有下面一些特征:,拥有同,Qt,一样的,API,;开发者只需要了解,Qt,的,API,,不用关心程序所用到的系统与平台,它的结构很好地优化了内存和资源地利用。,拥有自己的窗口系统:,QtE,不需要一些子图形系统。它可以直接对底层的图形驱动进行操作。,模块化:开发者可以根据需要自己定制所需要的模块。,代码公开以及拥有十分详细的技术文档帮助开发者。,强大的开发工具。,与硬件平台无关:,QtE,可以应用在所有主流平台和,CPU,上。支持所有主流的嵌入式,Linux,,对于在,Linux,上的,QtE,的基本要求只不过是,Frame Buffer,设备和一个,C+,编译器,(,如,gcc,),。,Qte,同时也支持很多实时的嵌入式系统,如,QNX,和,WindowsCE,。,提供压缩字体格式:即使在很小的内存中,也可以提供一流的字体支持。,支持多种的硬件和软件的输入。,支持,Unicode,,可以轻松地使程序支持多种语言。,支持反锯齿文本和,Alpha,混合的图片。,Trolltech公司在QtE的基础上开发了一个应用的环境Qtopia,这个应用环境为移动和手持设备开发。其特点就是拥有完全的、美观的GUI,同时它也提供可上百个应用程序用于管理用户信息、办公、娱乐、Internet交流等。,已经有很多公司采用了Qtopia来开发他们主流的PDA。,QtE虽然公开代码和技术文档,但是它不是免费的,当开发者的商业化产品需要用到他的运行库时,必须向Trolltech公司支持license费用(每套3美金),如果开发的东西不用于商业用途则不需要付费。,QtE由于平台无关性和提供了很好的Gui编程接口,在许多嵌入式系统中得到了广泛的应用,是一个成功的嵌入式GUI产品。,1.2 Microwindows,Mirowindows,是嵌入式系统中广为使用的一种图形用户接口,其官方网站是:。这个项目的早期目标是在嵌入式,Linux,平台上提供和普通个人电脑上类似的图形用户界面。,作为,PC,上,X-Windows,的替代品,,Microwindows,提供了和,X-Windows,类似的功能,但是占用的内存要少得多,根据用户得配置,,Microwindows,占用得内存资源在,100KB-60KB,。,1.2 Microwindows,Microwindows,支持多种外部设备得输入,包括液晶显示器、鼠标和键盘等。在嵌入式,Linux,平台上,从,Linux2.2.x,的内核开始,为了方便图形的显示,使用了,framebuffer,的技术。,Microwindows,完全支持,Linux,最新,framebuffer,技术,支持每个象素,1,位、,2,位、,4,位、,8,位、,16,位、,24,位和,32,位的色彩空间,/,灰度,并且通过调色板技术将,RGB,格式的颜色空间转换成目标机器上最相近的颜色,然后显示出来。,1.2 Microwindows,Microwindows,的核心基于显示设备接口,因此可移植行很好,,microwindows,有自己的,Framebuffer,,因此它并不局限于,Linux,开发平台,在,eCos,、,FreeBSD,、,RTEMS,等操作系统上都能很好地运行。,此外,,Microwindows,能在宿主机上仿真目标机。这意味着基于,Linux,的,Microwindows,应用程序的开发和调试可以在普通的个人电脑上进行,而不需要使用普通嵌入式软件的“宿主机目标机”调试模式,从而大大加快了开发速度。,Mincrowindows,是完全免费的一个用户图形系统。,1.3 MiniGUI,MiniGUI,是由北京飞漫软件技术有限公司主持的一个自由软件项目,(,遵循,GPL,条款,),,其目标是为基于,Linux,的实时嵌入式系统提供一个轻量级的图形用户界面支持系统。,MiniGUI,为应用程序定义了一组轻量级的窗口和图形设备接口。利用这些接口,每个应用程序可以建立多个窗口,而且可以在这些窗口中绘制图形。用户也可以利用,MiniGUI,建立菜单、按钮、列表框等常见的,GUI,元素。,1.3 MiniGUI,用户可以将,MiniGUI,配置成“,MiniGUI-Threads”,或者“,MiniGUI-Lite,。,运行在,MiniGUI-Threads,上的程序可以在不同的线程中建立多个窗口,但所有的窗口在一个进程中运行。,相反,运行在,MiniGUI-Lite,上的每个程序是单独的进程,每个进程也可以建立多个窗口。,MiniGUI-Threads,适合于具有单一功能的实时系统,而,MiniGUI-Lite,则适合于类似于,PDA,和瘦客户机等嵌入式系统。,1.2 QTE和Qtopia开发模型,1.2.1 QTE与QT/X11比较,Linux Kernel,Frame,buffer,QT/Embedded,QT/X11,Xlib,X Window Server,QT API,Application Source Code,1.2.1 QTE与QT/X11比较,QT/Embedded,通过,Qt API,与,Linux I/O,设施直接交互,成为嵌入式,linux,端口。同,Qt/X11,相比,,QT/Embedded,很节省内存,其不需要一个,X,服务器或是,Xlib,库,它在底层摈弃了,Xlib,,采用,framebuffer,(帧缓存)作为底层图形接口。,同时,将外部输入设备抽象为,keyboard,和,mouse,输入事件。,QT/Embedded,的应用程序可以直接写内核缓冲帧,这可避免开发者使用繁琐的,Xlib/Server,系统。,1.2.2 Qtopia介绍,Qtopia,是一种全方位的应用开发平台,它可用于基于嵌入式,linux,的,PDA,,移动电话,,web pads,,以及其他移动计算设备。,Qtopia,构建于,Qt/Embedded,之上,是专为基于,linux,的消费电子产品提供和创建图形用户界面而设计的。常见的有两种版本:,Qtopia,Phone,版:专为基于,linux,的智能电话和多功能电话设计。,Qtopia,PDA,版:专为基于,linux,的,PDA,设计。,1.2.2 Qtopia介绍,Qtopia特色:,视窗操作系统;同步窗口;开发环境;本地化支持;游戏和多媒体;PIM应用程序;输入法;个性化选项;internet应用程序;java集成;无线支持;,1.2.3 Qt/Embedded开发模型,嵌入式软件开发通常都采用交叉编译的方式进行,基于,Qt/Embedded,和,Qtopia,的,GUI,应用开发也采用这样的模式。先在宿主机上调试应用程序,调试通过后,经过交叉编译移植到目标板上。,Qt/Embedded,直接写入帧缓存,在宿主机上则是通过,qvfb,(,virtual framebuffer,)来模拟帧缓存。,qvfb,是,X,窗口用来运行和测试,Qtopia,应用程序的系统程序。,qvfb,使用了共享内存存储区域(虚拟的帧缓存)来模拟帧缓存并且在一个窗口中模拟一个应用程序来显示帧缓存,显示的区域被周期性的改变和更新。,1.2.3 Qt/Embedded开发模型,宿主机移植所需工具及环境变量声明:,工具软件,描述,变量声明,Tmake,1.11,生成,Makefile,文件,TMAKEDIR/TMAKEPATH,/PATH,Qt-x11-2.3.2,Qvfb,虚拟帧缓存工具,Uic,用户界面编辑器,Designer Qt,图形设计器,LD_LIBRARY_PATH_/PATH,Qt-embedded-2.3.7,Qt,库支持,libqte.so,QTEDIR/LD_LIBRARY_PATH/PATH,Qtopia-free-1.7.0,应用程序开发包 桌面环境,QPEDIR/LD_LIBRARY_PATH/PATH,1.2.4 Qt/Embedded信号与插槽,(,1,)概述,信号与插槽是,QT,自定义的一种通信机制,它独立于标准的从,C/C+,语言。他的实现必须借助于,moc,(,Meta Object Compiler,)的,QT,工具,他是一个,C+,预处理程序,为高层次的事件处理自动生成所需要的附件代码。,所谓图形用户接口的应用就是对用户的动作作出响应。程序员则必须把事件和相关代码联系起来,这样才能对事件作出正确的响应。,所有从,QObject,或其子类(例如,Qwidget,)派生的类都能够包含信号和插槽。,当对象改变状态时,信号就由该对象发射(,emit,)出来。,插槽用于接收信号,但它们是普通的对象成员函数。,一个插槽并不知道是否有任何消息与自己相连。用户可以将很多信号与一个插槽相连,也可将单个消息与多个插槽进行链接。,(2)信号与插槽的实现,信号:,void mysignal(int x);,插槽:,void myslot(int x);,信号与插槽关联:,connect(abutton, SIGNAL(clicked),SLOT(quit));,3,、,基于,Qt/Embedded,的嵌入式,GUI,设计,3.1,建立,Qt/Embedded,开发环境,安装,x86-,qtopia,源代码,#,tar,xvzf,x86-qtopia.tgz C /sbc2410,#,cd,/sbc2410/x86-qtopia,#,./build (shell,程序,),安装,SBC-2410X,版本的,arm,-,qtopia,源代码,#,tar,xvzf,arm-,qtopia.tgz,C /sbc2410,#,cd,/sbc2410/x86-qtopia,#,./build (shell,程序,),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,的开发缓建已经建立。,3.3 运行Qtopia,(1)设置环境变量,在/sbc2410/x86-qtopia/目录下输入“source set-env”或“. set-env”。,(2)启动虚拟帧缓存,“$ qvfb &”,或“$ qvfb width 640 height 480 &”,(3)运行qtopia,qpe &,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 大学资料


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!