1、1嵌入式系统嵌入式系统AnIntroductiontoEmbeddedSystem第十五课第十五课 嵌入式嵌入式GUIGUI22课程大纲课程大纲 嵌入式嵌入式GPUGPU 嵌入式嵌入式OpenGL ES 2.0OpenGL ES 2.0 嵌入式嵌入式GUIGUI简介简介 X WindowsX Windows Tiny-X Tiny-X体系结构体系结构 QTQT MiniGUIMiniGUI嵌入式芯片中的嵌入式芯片中的GPU重邮信科采用重邮信科采用VivanteVivante GPU GPU开发开发TD-SCDMATD-SCDMA芯片芯片目的目的n高高带宽带宽3G3G基带基带处理处理n富富媒体媒
2、体应用应用手机上的手机上的GPU微软微软WMWM系统系统GDIGDI,通常由,通常由CPUCPU运算运算iPhoneiPhone、AndroidAndroid等手机,有专用等手机,有专用GPUGPUn均支持均支持OpenGL ES 2.0OpenGL ES 2.0niPhoneiPhone的的桌面动画效果是基于桌面动画效果是基于Core AnimationCore Animation技术,属于技术,属于ESESnAndroidAndroid利用利用OpenGL ESOpenGL ES來來处理器处理器桌面桌面卷动与动画切换卷动与动画切换特效特效OpenGL OpenGL ESESn在手机上在手机
3、上的的工作,主要是用工作,主要是用來來处理图形相关数据处理图形相关数据AppleTVAppleTVAppleTV第一版本第一版本nIntel Pentium M 1.0 GHz Intel Pentium M 1.0 GHz n2MB of L2 2MB of L2 高速缓存高速缓存nnVidianVidia G72M G72M 显示卡显示卡n 64MB DDR2 64MB DDR2 内存内存n内置的内置的 40GB 40GB 硬盘硬盘n播放播放 iTunesiTunesApple A4处理器处理器A4A4处理器应用于处理器应用于n新一代新一代Apple Apple TVTVw尺寸仅有上代产品
4、的四分之一尺寸仅有上代产品的四分之一n98x98x23mmw重重270g270gnIPhoneIPhonenIPADIPADApple A4Apple A4处理器组成处理器组成nA4 A4 封装有三层封装有三层w两层两层 RAMRAM(三星(三星 K4X1G323PEK4X1G323PE,256M256M)w一层含有一层含有微处理器微处理器nARM CPU+GPUARM CPU+GPUnARMARM架构,架构,1GHz1GHz主频,主频,Cortex-A8Cortex-A8单核单核心微架构心微架构n显示芯片(显示芯片(PowerVRPowerVR SGX GPU SGX GPU)2023-8-
5、4浙江大学计算机学院6Nvidia的的TegraARMARM架构架构CPU+CPU+整合整合HD videoHD video处理单元处理单元+图像处理单元图像处理单元+音音频处理单元频处理单元+低电压版本低电压版本GeForce GPUGeForce GPU20082008年年6 6月月TegraTegra 600/650 600/650n800MHz ARM11 CPU800MHz ARM11 CPUn支持支持1080p H.2641080p H.264解码的视频处理器解码的视频处理器n图片处理器图片处理器n音频处理器音频处理器n超低功耗的超低功耗的GeForce GPUGeForce GP
6、Un运行功耗却仅为运行功耗却仅为1W1W左右左右便携式移动计算设备的应用解决方案便携式移动计算设备的应用解决方案其极低的系统功耗和强劲的媒体处理能力其极低的系统功耗和强劲的媒体处理能力嵌入式嵌入式GPU(Embedded GPU)类似于显示卡类似于显示卡n对嵌入式处理器提供辅助图形计算能力对嵌入式处理器提供辅助图形计算能力产品产品n高高画质手持装置、销售点终端机、医疗装置、多功能打印机、画质手持装置、销售点终端机、医疗装置、多功能打印机、赌场游戏机、工业用计算机、服务器等嵌入式及消费性应用赌场游戏机、工业用计算机、服务器等嵌入式及消费性应用装装置置编程编程n以以OpenGL 2.0OpenGL
7、 2.0为主流为主流n面向图形编程面向图形编程多多屏幕嵌入式屏幕嵌入式GPUAMDAMDn基于基于OpenCLOpenCL和和EyefinityEyefinity技术技术n桌面桌面级嵌入式级嵌入式GPUGPUn最多最多支持支持6 6屏屏输出,嵌入式输出,嵌入式GPU GPU E6760E6760VIAVIAn基于基于S3 Chrome 5400ES3 Chrome 5400E的双屏版的双屏版eH1eH1n基于基于S3 Chrome 5400EWS3 Chrome 5400EW核心的四屏版核心的四屏版uH8uH8n采用采用两颗两颗S3 Chrome 5400EWS3 Chrome 5400EW核
8、心的八屏版核心的八屏版uH8uH89ARM平台上的平台上的GPUPowerVRPowerVR最主流最主流n除了在除了在ARMARM中应用,也用于中应用,也用于intelintel的凌动处理器的凌动处理器n最好性能,仅仅接近最好性能,仅仅接近AMDAMD与与NVIDIQANVIDIQAn能整合进能整合进SOCSOC成为单芯片系统的一部分,而不是独立显卡成为单芯片系统的一部分,而不是独立显卡其次其次是是ATIATI后被后被QualcommQualcomm所购买的所购买的AdrenoAdreno接著是接著是NVIDIANVIDIA使用在使用在TegraTegra之中的之中的GeForceGeForc
9、e核心核心ARMARM自己也开始出自己也开始出GPUGPU,称为,称为MaliMaliPowerVR英国英国ImaginationImagination公司公司目前目前PowerVRPowerVR SGX545SGX5452 2到到1616个核心个核心数量数量苹果苹果A5A5采用的是采用的是PowerVRPowerVR SGX543MP2SGX543MP2性能性能n支持支持DX10.1/OpenGL ES DX10.1/OpenGL ES 2.X/OpenGL 3.X/2.X/OpenGL 3.X/OpenVGOpenVG 1.X/1.X/OpenCLOpenCL 1.X 1.X技术,技术,核
10、心频率核心频率200MHz200MHzn每秒每秒能生成能生成40004000万个多万个多边形,像素处理能力则边形,像素处理能力则达达1Gpixels/s1Gpixels/s11Adreno第第三代三代产品产品n配备配备1.5GHz 1.5GHz 增强内核的增强内核的QSD8672QSD8672n配备配备1.2GHz 1.2GHz 增强内核的增强内核的MSM8260MSM8260与与MSM8660MSM8660n三三款产品均为双款产品均为双CPUCPU架构架构。20112011代号代号KraitKrait(环蛇)(环蛇)的的SnapdragonSnapdragon移动处理器微架构移动处理器微架构
11、n单核单核MSM8930MSM8930:全球首款集成:全球首款集成LTE ModemLTE Modem的单芯片解决方案,面向主流的单芯片解决方案,面向主流智能手机,将集成智能手机,将集成AdrenoAdreno 305 GPU 305 GPU,性能是第一代,性能是第一代AdrenoAdreno的的6 6倍倍n双双核核MSM8960MSM8960:全球首款集成多模式:全球首款集成多模式3G/LTE3G/LTE基带的双核方案,面向多任基带的双核方案,面向多任务智能手机和平板机。双核心可实现异步频率,支持双通道务智能手机和平板机。双核心可实现异步频率,支持双通道LP DDRLP DDR内内存,集成存
12、,集成AdrenoAdreno 225 GPU 225 GPU,图形性能是第一代,图形性能是第一代AdrenoAdreno 8 8倍倍n四四核版核版APQ8064APQ8064:面向下一代计算和娱乐设备,内置四个异步:面向下一代计算和娱乐设备,内置四个异步CPUCPU核心,核心,核心最高频率核心最高频率2.5GHz2.5GHz,集成,集成AdrenoAdreno 320 320四核四核GPUGPU,图形性能将是第一代,图形性能将是第一代AdrenoAdreno的的1515倍以上。整体性能方面,倍以上。整体性能方面,APQ8064APQ8064是第一代是第一代SnapdragonSnapdrag
13、on处处理器的理器的1212倍,同时功耗下降了倍,同时功耗下降了7575%12GeForce超低功耗(超低功耗(ULPULP)架构)架构设计设计TegraTegra 2 213Mali目前是第四代,目前是第四代,Mali-T604Mali-T604硬件硬件n“tri-pipe”tri-pipe”三管线架构,可配置为三管线架构,可配置为1 1到到4 4个个ShaderShader核心,厂商可自行配置二级缓存核心,厂商可自行配置二级缓存(推荐每核心(推荐每核心32KB32KB),内建),内建MMUMMU显存管理显存管理单元可支持虚拟显存。支持单元可支持虚拟显存。支持4x/16x4x/16x全屏抗全
14、屏抗锯齿,支持锯齿,支持AMBA AXIAMBA AXI、AMBA4AMBA4总线接口总线接口。软件软件n在在OpenGL ES 1.1/2.0OpenGL ES 1.1/2.0、OpenVGOpenVG 1.1 1.1的基的基础上,加入了对础上,加入了对OpenCLOpenCL 1.1/1.2 1.1/1.2和和DirectXDirectXWindows 8Windows 8的的支持支持。ARMv7 CPUARMv7 CPU核心和核心和GPUGPU都以支持都以支持OpenCLOpenCL 1.11.114嵌入式嵌入式GPU性能性能比较比较151616课程大纲课程大纲 嵌入式嵌入式GPUGPU
15、 嵌入式嵌入式OpenGL ES 2.0OpenGL ES 2.0 嵌入式嵌入式GUIGUI简介简介 X WindowsX Windows Tiny-X Tiny-X体系结构体系结构 QTQT MiniGUIMiniGUIOpenGL ES 2.0OpenGLOpenGL(全写(全写Open Graphics LibraryOpen Graphics Library)是个定义了一)是个定义了一个跨编程语言、跨平台的编程接口的规格,它用于三个跨编程语言、跨平台的编程接口的规格,它用于三维图象(二维的亦可维图象(二维的亦可)OpenGL OpenGL ES(OpenGL for Embedded
16、Systems)ES(OpenGL for Embedded Systems)n是是 OpenGL OpenGL 三维图形三维图形 API API 的子集,针对手机、的子集,针对手机、PDAPDA和游戏主机和游戏主机等嵌入式设备而等嵌入式设备而设计设计n从从 OpenGL OpenGL 裁剪定制而来的,去除了裁剪定制而来的,去除了 glBeginglBegin/glEndglEnd,四边形,四边形(GL_QUADSGL_QUADS)、多边形()、多边形(GL_POLYGONSGL_POLYGONS)等复杂图元等许多非)等复杂图元等许多非绝对必要的特性绝对必要的特性免授权费的,跨平台的,功能完善
17、的免授权费的,跨平台的,功能完善的2D2D和和3D3D图形应用图形应用程序接口程序接口APIAPI17OpenGL ES 2.0两两个版本个版本nOpenGL OpenGL ES 1.x ES 1.x 针对固定管线硬件的针对固定管线硬件的nOpenGL ES 2.x OpenGL ES 2.x 针对可编程管线硬件。针对可编程管线硬件。KhronosKhronos GroupGroup在在2005-82005-8发布发布common profilecommon profilenKhronosKhronos是一个图形软硬件行业协会,该协会主要关注图形和是一个图形软硬件行业协会,该协会主要关注图形和
18、多媒体方面的开放标准。多媒体方面的开放标准。业界标准应用程序编程接口业界标准应用程序编程接口(API)(API)可以大大提高不同消费电子设备的可以大大提高不同消费电子设备的3D3D图形渲染速度,图形渲染速度,在嵌入式系统上实现了全面可编程的在嵌入式系统上实现了全面可编程的3D3D图形图形18具体使用,参考浙江大学具体使用,参考浙江大学智能终端智能终端软件开发软件开发中中openGL es课件课件192020课程大纲课程大纲 嵌入式嵌入式GPUGPU 嵌入式嵌入式OpenGL ES 2.0OpenGL ES 2.0 嵌入式嵌入式GUIGUI简介简介 X WindowsX Windows Tiny
19、-X Tiny-X体系结构体系结构 QTQT MiniGUIMiniGUI21嵌入式嵌入式GUI简介简介嵌入式设备对嵌入式设备对GUI 的限制的限制n CPU速度相对来说较慢,一般不具备浮点运算功能或浮点运速度相对来说较慢,一般不具备浮点运算功能或浮点运算功能较弱算功能较弱n内存、外存容量小内存、外存容量小n电量有限电量有限嵌入式嵌入式GUI设计包括以下设计包括以下3个方面:个方面:n硬件设计硬件设计,通过通过LCD控制器把控制器把LCD显示器和开发系统连接起来。显示器和开发系统连接起来。n驱动程序设计驱动程序设计,为输出输入设备如为输出输入设备如LCD设计驱动程序设计驱动程序,使硬件使硬件能
20、驱动起来能驱动起来n用户界面程序设计用户界面程序设计,使用嵌入式系统提供的函数库进行图形化使用嵌入式系统提供的函数库进行图形化程序设计程序设计21嵌入式嵌入式GUI的模块的模块GUIGUI用户接口模块用户接口模块 n为上层应用软件开发人员提供方便、易用的为上层应用软件开发人员提供方便、易用的APIAPI接口函数接口函数n屏蔽了屏蔽了GUIGUI的设备实现细节的设备实现细节GUIGUI对象模块对象模块 n对窗口环境中的逻辑对象进行组织管理对窗口环境中的逻辑对象进行组织管理n包括对象的添加、删除引发的对象链表的更新,以及包括对象的添加、删除引发的对象链表的更新,以及GUIGUI窗口显示的窗口显示的
21、维护,如窗口切换、焦点切换、对象的隐藏和恢复等操作引发的对象维护,如窗口切换、焦点切换、对象的隐藏和恢复等操作引发的对象属性的更新,还有对不同控件的各种事件的响应属性的更新,还有对不同控件的各种事件的响应GUIGUI基本图形模块基本图形模块 n实现对显示输出设备的操作,如画点、画线、画矩形等基本功能实现对显示输出设备的操作,如画点、画线、画矩形等基本功能n对于字符的解析输出,以及对图形的解析输出对于字符的解析输出,以及对图形的解析输出n独立于具体的设备驱动程序,与物理设备之间形成独立于具体的设备驱动程序,与物理设备之间形成“设备抽象层设备抽象层”GUIGUI消息驱动模块消息驱动模块 n负责负责
22、GUIGUI的消息接收和与其它任务的通讯以及消息队列的维护的消息接收和与其它任务的通讯以及消息队列的维护22嵌入式嵌入式GUI的特点的特点可移植性可移植性较高的稳定性和可靠性较高的稳定性和可靠性系统开销少系统开销少n占用的存储空间以及运行时占用资源少占用的存储空间以及运行时占用资源少n运行速度以及响应速度快运行速度以及响应速度快较高可配置性较高可配置性n可裁减性、界面特性配置、皮肤和主题配置可裁减性、界面特性配置、皮肤和主题配置23嵌入式嵌入式GUI系统结构系统结构一个能够移植到多种硬件平台上的嵌入式一个能够移植到多种硬件平台上的嵌入式GUIGUI系统,应用系统,应用至少抽象出两类至少抽象出两
23、类设备设备n基于基于图形显示设备图形显示设备(如如VGA VGA 卡卡)的图形抽象层的图形抽象层GAL(Graphic GAL(Graphic Abstract LayerAbstract Layer)n基于基于输入设备输入设备(如键盘,触摸层等如键盘,触摸层等)的输入抽象层的输入抽象层IAL(Input IAL(Input Abstract Layer)2Abstract Layer)224目前在嵌入式系统比较流行的目前在嵌入式系统比较流行的GUI国外国外Qt/Embeddedn是一个是一个C+函数库函数库,支持真支持真正的组件编程正的组件编程 MicroWindowsn开放源码开放源码,C
24、/S结构结构,三层三层,LGPL OpenGUI n适合于适合于x86,可移植性比较差可移植性比较差 Tiny-Xn是标准是标准X-windows系统的简系统的简化版化版国内国内MiniGUIMiniGUIn基于基于LinuxLinux,轻量级轻量级n自由自由软件软件,LGPLn清华大学教师魏永明先生清华大学教师魏永明先生KingmosKingmos-GWME-GWMEn消息消息事件驱动事件驱动,丰富丰富的基本的基本控件和高级控件控件和高级控件252526对比对比MiniGUI MicroWindows QT/Embedded API Win32风格 X,Win32的子集 QT(C+)API是
25、否完备是否完备 是 Win32支持赏不完备 是 函数库的典型函数库的典型大小大小 500K 600K 1.5M 可移植性可移植性 很好 很好 较好(但函数库本身的跨平台交叉编译很困难)授权条款授权条款 GPL/商业许可证 MPL/LGPL QPL/GPL/商业许可证 多进程支持多进程支持 好 X接口的多进程支持好,Win32的接口尚不支持 好 健壮性健壮性/稳定性稳定性 好 一般 一般 多语种支持多语种支持 独特的多字符集支持功能,更加适合嵌入式系统 一般 采用UNICODE,但效率低 可配置和可定可配置和可定制性制性 好(提供了大量编译配置选项,可配置能力很强)一般 差 系统资源耗费系统资源
26、耗费 小(多线程和MiniGUI-Lite 均是针对最小系统资源消耗设计)较大(基于 UNIX 套接字的传统客户/服务器体系,进程间的通讯频繁,系统资源消耗较大)最大(用C+实现,系统资源消耗最大)效率效率 好 一般 一般 操作系统支持操作系统支持 Linux/uClinux,eCos,uC/OS-II,VxWorks 等 Linux Linux 已知能运行的已知能运行的的平台的平台 x86、ARM、MIPS、PowerPC、StrongARM主频最低需 30MHz。x86、ARM、MIPS、StrongARM主频最低需 70MHz。x86、ARM、StrongARM主频最低需 100MHz。
27、使用是否广泛使用是否广泛 在中国大陆、台湾地区等使用广泛。产品涉及普通PC 上的 Linux 发行版、PDA 等手持设备、彩票机/POS 机、机顶盒等等。主要针对手持设备。用户主要限于美国,国内有少数用户。主要针对高端手持设备。在欧美、韩国等地区使用较为广泛。2727课程大纲课程大纲 嵌入式嵌入式GPUGPU 嵌入式嵌入式OpenGL ES 2.0OpenGL ES 2.0 嵌入式嵌入式GUIGUI简介简介 X WindowsX Windows Tiny-X Tiny-X体系结构体系结构 QTQT28X Windows架构架构采用客户端采用客户端/服务器的设计概念服务器的设计概念 X Wind
28、owsX Windows由由3 3部分组成部分组成n客户端客户端n服务器服务器nX X协议协议X WindowsX Windows是事件驱动是事件驱动n大部分时间处于一种等待事件发生的状态大部分时间处于一种等待事件发生的状态 2829X Windows的基本的的基本的API函数库函数库293030课程大纲课程大纲 嵌入式嵌入式GPUGPU 嵌入式嵌入式OpenGL ES 2.0OpenGL ES 2.0 嵌入式嵌入式GUIGUI简介简介 X WindowsX Windows Tiny-X Tiny-X体系结构体系结构 QTQT MiniGUIMiniGUI31Tiny-X系统框架系统框架标准标
29、准X-windowsX-windows系统的简化版系统的简化版设计目标设计目标n在小容量内存的环境下运行在小容量内存的环境下运行n适合用作嵌入式适合用作嵌入式linuxlinux的的GUIGUI系统系统 采用标准的采用标准的Client/ServerClient/Server体系结构体系结构 在嵌入式系统中使用在嵌入式系统中使用Tiny-XTiny-X图形用户界面开发产品图形用户界面开发产品,上层的应用程序的编写很方便上层的应用程序的编写很方便 3132Tiny-X系统架构系统架构3233nFrameBuffer FrameBuffer 帧缓冲器帧缓冲器nTinyXTinyX(XfbdevXf
30、bdev)TinyXTinyX为为XwindowsXwindows的微缩版的微缩版,有经过精简的有经过精简的XlibXlib类库类库 nGlibGlib包括一些基础数据类型和典型的包括一些基础数据类型和典型的C C程序需要的功能程序需要的功能 nGDKGDK是建立在是建立在XlibXlib上的针对图形图像类封装的底层图形库上的针对图形图像类封装的底层图形库 Tiny-X结构说明结构说明(1)3334Tiny-X结构说明结构说明(2)nGTKGTKw建立在建立在XlibXlib和和GDKGDK上的高级面向对象的类库上的高级面向对象的类库 n窗口管理器(窗口管理器(QVWMQVWM)w一种类似于一
31、种类似于window95window95风格的窗口管理器风格的窗口管理器 nGladeGladewGTKGTK的集成开发环境的集成开发环境 3435Tiny-X库的调用关系库的调用关系 353636课程大纲课程大纲 嵌入式嵌入式GPUGPU 嵌入式嵌入式OpenGL ES 2.0OpenGL ES 2.0 嵌入式嵌入式GUIGUI简介简介 X WindowsX Windows Tiny-X Tiny-X体系结构体系结构 QTQT MiniGUIMiniGUIQt 基础基础QtQt是跨平台的是跨平台的C+C+图形用户界面图形用户界面(GUI)(GUI)工具包工具包,它是它是TrollTechTr
32、ollTech公司的标志产品。公司的标志产品。QtQt工具包有两种不同的版本工具包有两种不同的版本n一种是用于商业性质的专业版一种是用于商业性质的专业版n另一种是用于开发另一种是用于开发X X平台自由软件的自由版平台自由软件的自由版n用自由版开发软件都必须作为自由软件公开用自由版开发软件都必须作为自由软件公开n如果要用如果要用QtQt编写非自由软件编写非自由软件,则需要购买专业版。则需要购买专业版。QtQt是一种跨平台的是一种跨平台的GUIGUI工具包工具包,软件能非常方便地应用软件能非常方便地应用于绝大多数操作系统于绝大多数操作系统nMicrosoft Windows,Linux,Solar
33、is,SunOS,HP_UX,Microsoft Windows,Linux,Solaris,SunOS,HP_UX,Digital Unix,Irix,FreeBSD,BSD/OS,SCO,AIXDigital Unix,Irix,FreeBSD,BSD/OS,SCO,AIX37Qt特征特征面向对象:模块设计面向对象:模块设计,注重软件构件和元素的可重用注重软件构件和元素的可重用性。性。构件支持:提供构件支持:提供signalsignal和和slot,slot,对象之间可在不知道对象之间可在不知道对方信息的情况下进行合作。对方信息的情况下进行合作。方便性:跨平台方便性:跨平台GUIGUI工具
34、包工具包,对编程人员隐藏了处理不对编程人员隐藏了处理不同窗口系统时潜在的问题。同窗口系统时潜在的问题。国际化:国际化:QtQt用户界面文本用户界面文本,可以通过消息翻译表被译可以通过消息翻译表被译成各国语言。成各国语言。丰富的丰富的APIAPI完整的组件:按钮、滚动条、自动布局组件等完整的组件:按钮、滚动条、自动布局组件等优越的绘图功能优越的绘图功能2D/3D2D/3D图形润色功能图形润色功能38Qt 与与X11的关系的关系X11X11是是X Window X Window 系统第系统第1111版版n基于基于X X的应用是通过调用的应用是通过调用XlibXlib的库函数来实现其各种功能的。的库
35、函数来实现其各种功能的。XlibXlib是底层库是底层库n在其上又发展出比在其上又发展出比XlibXlib更高层次的库函数更高层次的库函数,称为工具包称为工具包n将一些常用界面图形或组件按面向对象编程的方式组织到一起将一些常用界面图形或组件按面向对象编程的方式组织到一起,供应用软件使用。供应用软件使用。不同公司或组织开发出不同的工具包不同公司或组织开发出不同的工具包,如如XtXt工具包工具包,MotifMotif工具包工具包,QtQt工具包等工具包等QtQt工具包是优秀强大的工具包是优秀强大的GUIGUI工具包工具包n linuxlinux上流行的桌面环境上流行的桌面环境KDEKDE是基于是基
36、于QtQt开发出的开发出的39Qt 与与X11的关系的关系40Qt 应用程序的执行过程应用程序的执行过程41Qt 基础基础QtQt 的三个主要基类:的三个主要基类:1.QObject1.QObjectQObjectQObject 是所有能够处理是所有能够处理signal,slotsignal,slot和事件的和事件的QtQt对象的基类。对象的基类。QtQt为对象的通信以及为对象的通信以及signal/slotsignal/slot连接提供了强大的机制连接提供了强大的机制,signal/slot,signal/slot机制比传统的回调规则更先进。机制比传统的回调规则更先进。所有所有QtQt组件都
37、继承组件都继承QObjectQObject和使用和使用signal/slotsignal/slot机制机制2.QApplication2.QApplicationQApplicationQApplication 类负责类负责GUIGUI应用程序的控制流程和主要的设置应用程序的控制流程和主要的设置,它包含主事件循环体它包含主事件循环体,负责处理负责处理和调度所有来自窗口系统和其他资源的事件和调度所有来自窗口系统和其他资源的事件,并且处理应用程序的开始、结束以及会话管理并且处理应用程序的开始、结束以及会话管理,还包括还包括应用程序方面的设置。应用程序方面的设置。QApplicationQAppli
38、cation 实现的主要功能有:实现的主要功能有:1)1)初始化应用程序、并设置用户桌面的一些特性。如字体设置等。初始化应用程序、并设置用户桌面的一些特性。如字体设置等。2)2)执行事件处理执行事件处理,从当前的窗口系统接收事件并将其送给目标组件。从当前的窗口系统接收事件并将其送给目标组件。3)3)解析命令行的变元和设置相应的内部状态解析命令行的变元和设置相应的内部状态4)4)定义应用程序的外观和感受定义应用程序的外观和感受5)5)指明应用程序如何分配颜色指明应用程序如何分配颜色6)6)指明默认的文本编码指明默认的文本编码7)7)管理应用程序的鼠标、光标管理应用程序的鼠标、光标8)8)提供完善
39、的会话管理提供完善的会话管理,使用户注销时终止应用程序使用户注销时终止应用程序42Qt 基础基础3.QWidget3.QWidgetnQWidgetQWidget 类是所有用户接口对象的基类类是所有用户接口对象的基类,它继承它继承QObjectQObject类的属性。类的属性。n组件是用户界面的单元组成部分组件是用户界面的单元组成部分,它接收鼠标、键盘和其他从窗口系统来的事件它接收鼠标、键盘和其他从窗口系统来的事件,并把它自己画在屏幕上。并把它自己画在屏幕上。n一个不能移植到其父组件的组件成为顶层组件一个不能移植到其父组件的组件成为顶层组件nQWidgetQWidget类有很多成员函数类有很多
40、成员函数,但是一般不直接使用但是一般不直接使用,而是由其子类继承而是由其子类继承,使用函使用函数功能。数功能。n所有的组件都继承所有的组件都继承QWidgetQWidget类类,因此它的属性其他组件都可以用。组件通常以因此它的属性其他组件都可以用。组件通常以QWidgetQWidget类的抽象子类作为基类类的抽象子类作为基类,利用基类的属性并加上自己的特性作为它自己利用基类的属性并加上自己的特性作为它自己特有的属性。如特有的属性。如QPushButtonQPushButton以以QButtonQButton为基类为基类,而而QButtonQButton是是QWidgetQWidget的抽象子类
41、的抽象子类,它的属性可以被子类所继承它的属性可以被子类所继承,而它却不能自己使用而它却不能自己使用,即一般构建的是即一般构建的是QButtonQButton的的子类。子类。43Qt 与与MotifQtQt是基于是基于XlibXlib的工具包的工具包,Motif,Motif是基于是基于XtXt的工具包的工具包,而而XtXt是基于是基于XlibXlib的工具包的工具包,因此二者建立的底层基础是因此二者建立的底层基础是相同的。两者的关系如图相同的。两者的关系如图44Qt与与Motif的区别的区别编程语言和结构编程语言和结构:QtQt使用使用C+C+语言语言,具有面向对象的特具有面向对象的特点点,而而
42、MotifMotif使用的是使用的是C C语言语言,因此因此QtQt编写的程序易懂、编写的程序易懂、易维护易维护内涵内涵:QtQt仅是一种图形用户界面的工具包和开发工具;仅是一种图形用户界面的工具包和开发工具;而而MotifMotif除了高级工具包外除了高级工具包外,还代表窗口管理器还代表窗口管理器Motif Motif Window Manager,Window Manager,还代表一种图形用户界面的风格还代表一种图形用户界面的风格,即即MotifMotif风格风格应用范围:应用范围:QtQt具有跨平台的特性具有跨平台的特性,可以在可以在UNIXUNIX和和WindowsWindows等操
43、作系统上使用;而等操作系统上使用;而MotifMotif则只能在则只能在UNIXUNIX上上使用使用,不具有适应多种平台的特性不具有适应多种平台的特性,适应范围小适应范围小图形:图形:QtQt图形功能更强大图形功能更强大,Motif,Motif实现图形功能方面有实现图形功能方面有时还需要利用时还需要利用XlibXlib的函数来实现的函数来实现速度:速度:QtQt的速度比的速度比MotifMotif快快45KDE 简介简介KDE KDE 是一种图形桌面集成环境是一种图形桌面集成环境,是一套使是一套使UnixUnix系统拥有图形操作系统拥有图形操作集成环境的软件。集成环境的软件。KDEKDE起源于
44、起源于19961996年年1010月月,由德国人由德国人Mattias EttrichMattias Ettrich发起的发起的KDEKDE组织组织(K Desktop Environment)(K Desktop Environment)计划的内容计划的内容n标准的拖放机制;标准的拖放机制;n统一的应用程序框架;统一的应用程序框架;n类似类似ActivXActivX的机制;的机制;n大量软件大量软件,如如KFM(K File Manager),K Presnenter(KFM(K File Manager),K Presnenter(类似类似Power Power Point),K Illu
45、strationPoint),K Illustration、KOrganizerKOrganizer等;等;KDEKDE的底层是的底层是X Server,X Server,然后是然后是KWM(K Window Manager),KFM(K KWM(K Window Manager),KFM(K File Manager)File Manager)和许多不同种类的客户和许多不同种类的客户/服务器等。服务器等。KDE KDE 为用户提供了方便且全面的服务为用户提供了方便且全面的服务,并有专门的并有专门的KDEKDE小组维护这小组维护这套软件套软件KDE KDE 支持的操作系统有:支持的操作系统有:
46、Linux,Free BSD,Solaris,HP_UXLinux,Free BSD,Solaris,HP_UX和和MKLinuxMKLinux等。等。46KDE 3.2 桌面桌面47Qt 的结构的结构48Qt Embedded 结构结构49Qtopia 结构结构505151课程大纲课程大纲 嵌入式嵌入式GPUGPU 嵌入式嵌入式OpenGL ES 2.0OpenGL ES 2.0 嵌入式嵌入式GUIGUI简介简介 X WindowsX Windows Tiny-X Tiny-X体系结构体系结构 QTQT MiniGUIMiniGUIMINIGUI面向嵌入式系统的高级窗口系统(面向嵌入式系统的
47、高级窗口系统(Windowing SystemWindowing System)和图形用)和图形用户界面(户界面(Graphical User InterfaceGraphical User Interface,GUIGUI)支持)支持系统系统n魏永明魏永明先生于先生于 1998 1998 年底开始年底开始开发开发2002 2002 年创建北京飞漫软件技术有限公司年创建北京飞漫软件技术有限公司n提供提供商业技术支持,同时也继续提供开源商业技术支持,同时也继续提供开源版本版本n飞飞漫软件是中国地区为开源社区贡献代码最多的软件漫软件是中国地区为开源社区贡献代码最多的软件企业企业最后最后一个采用一个
48、采用 GPL GPL 授权的授权的 MiniGUIMiniGUI 版本是版本是 1.6.101.6.10,从,从 MiniGUIMiniGUI 2.0.4 2.0.4 开始开始 MiniGUIMiniGUI 被重写并使用商业被重写并使用商业授权授权支持支持Linux/Linux/uClinuxuClinux、eCoseCos、uCuC/OS-II/OS-II、VxWorksVxWorks、ThreadXThreadX、Nucleus Nucleus、pSOSpSOS、OSE OSE 等操作系统和数十种等操作系统和数十种 SoCSoC 芯片,已验证的芯片,已验证的硬件平台包括硬件平台包括 ARM
49、-based ARM-based SoCsSoCs 、MIPS based MIPS based SoCsSoCs 、IA-based IA-based SoCsSoCs 、PowerPCPowerPC、M68K(M68K(DragonBallDragonBall/ColdFireColdFire)、Intel x86 Intel x86 等等等,广泛应用于通讯、医疗、工控、电力、机顶盒、多媒体终端等,广泛应用于通讯、医疗、工控、电力、机顶盒、多媒体终端等领域等领域52MINIGUI 3.0/4.0图形抽象层(图形抽象层(Graphics Abstraction LayerGraphics A
50、bstraction Layer,GALGAL)。)。输入抽象层(输入抽象层(Input Abstraction LayerInput Abstraction Layer,IALIAL)。图形设备接口(图形设备接口(Graphics Device InterfacesGraphics Device Interfaces,GDIGDI)。消息处理模块(消息处理模块(Messaging ModuleMessaging Module)。多多窗口处理模块(窗口处理模块(Windowing ModuleWindowing Module)和控件()和控件(Control Control 或或 Widget
侵权处理QQ:3464097650--上传资料QQ:3464097650
【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。