版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、嵌入式系统设置修订大学教程,第8章用户图形界面GUI,主要内容,8.1嵌入式系统GUI8.2Qt /嵌入式基础8.3 Qt /嵌入式开发环境8.4 Qt /嵌入式开发案例,8.1 8.1嵌入式系统中的GUI、8.1.1嵌入式GUI的发展需求GUI在嵌入式系统或实时系统中的地位越来越重要。 这些系统对GUI的基本要求具有重量轻、占用资源少、性能高、可靠性高、可配置、可移植等特征。 小型消费系统资源少的系统可以独立配置、可移植、8.1嵌入式系统的GUI、8.1.2嵌入式GUI的功能特征输入输出硬件图形原语图形文件格式字符集和字体窗口和控件的集合、8.1组8.1.3当前流行的嵌入式GUI系统嵌入式系
2、统的GUI第二种方法是将图形用户界面部署到应用程序中,从而使图形用户界面的执行逻辑由应用程序自己负责。 第三种方法是采用相对成熟的图形用户界面系统,如Qt/Embedded、MiniGUI和MicroWindows。 8.1嵌入式系统中的GUI,1,MicroWindows MicroWindows是著名的开源嵌入式GUI软件,将现代图形窗口环境引入运行Linux的小型设备和平台,在X Windows的支持多线程,但必须使用PThread库。8.1嵌入式GUI、MicroWindows是基于客户端/服务器体系结构的GUI系统,采用分层结构。8.1嵌入式系统中的GUI、2、开放式GUI开放式GU
3、I已经长期存在于Linux系统中。 最初的名称是FastGL,只支持256色的线性显示模式。 其他显示模式也得到支持,MS-DOS、QNX、Linux等多种操作系统平台得到支持,8.1嵌入式系统的GUI、OpenGUI分为三个级别最低层级是由组合建立的快速图形引擎。中间层提供图形绘图API,例如线、矩形和弧,并与Borland的BGI API相容。 第3层用c编写,提供完整的GUI对象集。 8.1嵌入式系统的GUI、3和三角网x windows是Linux和其他Unix系统的标准GUI。 X Windows系统采用标准的客户端/服务器体系结构,具有可扩展性、可移植性等优点。 但是,这个系统庞大
4、,麻烦,效率低下。 为了获得应用程序的可移植性,很多制造商通过缩小开发X Windows系统,目前正在开发大约800KB的tiny-x服务器。8.1嵌入式系统中的GUI、Tiny-X Windows体系结构、8.1嵌入式系统中的GUI、4、Qt /嵌入式Qt /嵌入式由萩名Qt库开发商Trolltech开发Qt/Embedded继续在x上强大的Qt功能,但基础是消除XLib,仅使用帧缓冲器作为基础图形接口。 Qt/Embedded类库完全c封装,具有丰富的控制资源和可移植性。8.1嵌入式系统中的GUI、Qt /嵌入式体系结构、8.1嵌入式系统中的GUI、5、MiniGUI MiniGUI是北京
5、固定软件技术有限公司主办的自由软件,按照GPL条款公布8.1嵌入式系统中的GUI是实时嵌入式Linux系统的快速构建,其中在整体上,该GUI也在分层级上被修改,MiniGUI的分层结构,一些常见的嵌入式GUI的比较,以及8.1嵌入式系统上述GUI系统都过于依赖于某个操作系统和第三方函数库,消费资源过多,适用于小型应用系统联系人系统的功能相对简单、不成熟、难以扩展或修剪主要内容,8.1嵌入式系统中基于GUI8.2Qt /嵌入式8.3 Qt /嵌入式开发环境8.4 Qt /嵌入式开发实例,8.2 Qt /嵌入式,Qt为Trolltech Qt为多操作系统Qt最初主要为跨平台的软件开发人员提供了统一
6、而美观的图形用户编程接口,现在统一的网络和数据库操作编程接口、8.2 Qt/Embedded的基础、Qt 作为工具开发包提供给开发者,包括makefile创建工具、字体国际化工具、Qt库等。 目前,Qt支持的操作系统平台包括MS/Windows 95、Windows 98、Windows NT 4.0、Windows 2000和Windows XP。 Unix/X11 Linux、Sun Solaris、HP-UX、比较真64 UNIX、IBM AIX、SGI IRIX和许多其他X11平台。 MAC操作系统; 嵌入式支持FramBuffer的Linux平台。8.2 Qt嵌入式基础、8.2.1
7、Qt /嵌入式配置文件Qt /嵌入式是Trolltech公司开发的面向嵌入式系统的Qt版本,开发者多为KDE项目的核心开发者。 在较低级别,Qt/Embedded完全消除了XLib,仅使用帧缓冲器作为较低级别的图形接口。 Qt /嵌入式类库完全被c封装。 丰富的控制资源和优秀的可移植性是Qt/Embedded的最佳方面。 基于8.2 Qt /嵌入式和8.2.1 Qt /嵌入式配置文件x的开发工具Qt Designer可用于直接开发基于Qt /嵌入式的用户交互界面(UI )。 在代码设定修正中,Qt/Embedded巧妙地利用了c独有的机制,例如继承、多态性、模板等,具体的实现非常灵活。 但是,
8、基础代码追求与多个系统、多个硬件的兼容性,因此代码补丁很多,样式有点混乱。8.2 Qt /嵌入式基础、Qt /嵌入式实现结构、8.2 Qt /嵌入式基础、8.2.2 Qt /嵌入式特征采用帧缓冲器作为基础图形接口, 8.2.3 Qt/Embedded体系结构可以在Linux支持的所有处理器上运行,从而实现图形加速组件化编程机制,简化功能的其他节省内存技术在不同版本(如X11、Qt/Windows、Qt/Mac )中使用相同API编程的便利性。Qt /嵌入式和Qt/X11的Linux版本的比较、8.2 Qt /嵌入式、1、Qt /嵌入式图形引擎实现式Qt /嵌入式图形引擎为框架缓冲Linux内核
9、架构2.2版或更高版本的标准显示设备驱动程序接口。 当前,相对高级的嵌入式SOC大多集成LCD控制模块,而LCD控制模块通常采用由双DMA控制器构成的专用DMA信道。8.2 Qt /嵌入式基础、帧缓冲器驱动的实现分为两个方面:一个包括LCD及其相关部件的初始化、画面缓冲器的制作和DMA通道的设定。 另一方面,是对画面缓冲器的读写,具体的代码是read、write、lseek等系统调用接口函数。8.2 Qt /嵌入式基础、Qt /嵌入式3.x中的基础图形引擎实现结构、Qt /嵌入式窗口系统、Qt /嵌入式窗口系统体系结构、8.2 Qt /嵌入式1 客户可以直接访问分配的显示区域,为用户提供GUI
10、服务。 基于8.2 Qt /嵌入式,鼠标设备可以是触摸板或其他指点设备。 服务可以为设备生成独立的鼠标事件,并将其发送到相应的客户端进程以更新设备的鼠标光标。 键盘事件也由服务维护,也是设备独立的事件,通常使用Unicode代码或固定键盘代码。 Qt/Embedded提供给客户的API与标准的Qt API一致。、8.2 Qt /嵌入式基础、Qt /嵌入式客户端库可能需要与服务器进程连接。 Qt/Embedded客户端库处理所有绘图操作,包括文本显示和字体处理。 它还处理自定义窗口装饰,如标题栏。 Qt/Embedded库还支持windows.fon字体文件、TrueType、Typel、BDF
11、字体和可以有效利用内存的位图格式字体QPF。8.2 Qt /嵌入式基础、3、Qt系统的信号和时隙机制(1)信号和时隙机制概述信号(signal )和时隙(slot )是高级接口,用于对象之间的通信,作为Qt的核心特性的信号和时隙是由于独立于标准C/C语言,所以为了正确处理信号和时隙,必须使用QT工具moc(Meta Object Compiler )。8.2 Qt/Embedded的基础,如果对象改变其状态,则从该对象发送信号(emit )。 这是对象的所有事情,而对象不知道另一端正在接收该信号。 这是一个真正的信息包。 时隙用于接收信号,但是是正常的对象成员函数。 一个插槽不知道是否有与自己
12、相连的信号。 多个信号可连接成单个时隙,单个信号可连接成多个时隙,也可将一个信号连接成另一个信号。 信号和时隙构建了强大的组件编程机制。8.2 Qt/Embedded的基础、3、Qt系统的信号和时隙机制(2)信号和时隙的实现和连接1 )信号和时隙的定义信号的宣言在头文件中进行,指出Qt的signals关键字进入了信号宣言区域,然后可以宣言自己的信号例如,符号:我的符号(); 我的信号(入x,入y );8.2 Qt/Embedded基础,1 )信号和时隙的定义时隙是普通的c成员函数,能够正常调用,它们的唯一特殊性是许多信号能够与之相关。 当相关信号被发送时,调用此时隙。 可以为插槽设置残奥仪表,
13、但不能为插槽的残奥仪表设置默认值。 与其他成员函数一样,时隙也具有访问权限。 插槽的访问权限决定了谁可以关联。8.2 Qt /嵌入式、槽函数也分为三种类型。 公共插槽:在此区域中声明的插槽意味着任何对象都可以连接信号。 这有助于组件的编程。 受保护的插槽:在此区域中声明的插槽意味着当前类及其子类可以连接信号。 这适用于作为类实现一部分的插槽,但接口面向外部。 私有槽:在此区域中声明的槽意味着只有类可以连接信号。 这适用于有非常密切联系的班级。信号和时隙的连接模型、8.2 Qt/Embedded基础、2 )信号和时隙的连接调用q对象的connect函数,该函数使得一个对象的信号和另一个对象的时隙
14、函数相关联,发送者发送该信号时,接收者此函数的定义如下: boolqobject 33603360连接(constqobject * sender,const char * signal,const QObject * receiver, (8. 2基于Qt/embedded,2 )宏SIGNAL ()用于指定信号和时隙的连接信号,宏SLOT ()用于指定时隙函数。 例如,结束按钮的clicked ()信号连接到应用程序的结束函数时隙quit ()的情况下。 用户点击结束按钮,应用程序的执行就结束了。 以上连接进程代码是基于连接(button,SIGNAL(clicked () ) ),qApp,SLOT(quit () ) ),8.2 Qt/Embedded的。其定义为boolqobject 33603360 disconnect (const object * sender,const char * signal,const Object * receiver,const Object * receiver 3)切断disconnect(myObject,0,0,0 )断开与特定信号的关联。 disconnect
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 江苏省江阴市第二中学2025-2026学年初三5月月考(化学试题理)试卷含解析
- 广东省深圳市南山区2026届中考生物试题命题比赛模拟试卷(13)含解析
- 福建省三明市梅列区梅列、永安2026届初三一诊模拟考试(一)化学试题含解析
- 2026年金融机构DCMM贯标实践:保险行业数据治理体系构建案例
- 2026年嫩肉糕感官评价IDDSI咀嚼等级质构性能持水性持油率指标优化
- 2026年泥水加压平衡盾构机穿越复杂地层施工
- 房地产经纪人业务经理的招聘全攻略
- 奇虎360服务器设备维护及工作部署安排
- 酒店业客房服务专员面试要点分析
- 微服务间通信策略
- JGJ31-2003 体育建筑设计规范
- 2024年河南省信阳市事业单位招聘考试(职业能力倾向测验)题库学生专用
- 农贸市场营销策划方案
- 【可行性报告】2023年高纯氮化铝粉体行业项目可行性分析报告
- 营养支持讲课最终课件
- 出口海运工厂集装箱货物绑扎加固指南
- 电动机检修作业指导书
- TS30测量机器人Geocom中文说明书
- 化工厂监控系统解决方案
- GB/T 3565.1-2022自行车安全要求第1部分:术语和定义
- GB/T 3452.4-2020液压气动用O形橡胶密封圈第4部分:抗挤压环(挡环)
评论
0/150
提交评论