当前位置:首页 >> 工学 >>

毕业设计——基于QT的GPS车载导航系统(9)第5章 嵌入式系统图形开发

第五章 嵌入式系统图形开发

第五章 嵌入式系统图形开发

5.1 常用的几种嵌入式GUI图形开发软件 5.1.1 Microwindows
Microwindows Open Source Project这个图形开发软件主要针对体积比较小的 系统,而且在Linux操作系统的环境下可以使用交叉编译工具编写出简单的 Microwindows程序; Microwindows能够对所有的裸显示设备直接进行操作, 也就 是说即便没有任何操作系统或其他图形系统的支持, Microwindows的程序仍然可 以正常的运行[12]。所以Microwindows编译出来的程序占用系统的空间很小,这就 方便用户对它进行移植。 虽然有上述这些优点, Microwindows的免费版本非常难 以找到, 尤其是在国内还没有对Microwindows提供全面技术支持的专业公司, 这 就使得Microwindows的发展十分缓慢。

5.1.2 TinyX
Tiny X Server 是 由Keith Pachard发展起来的,该图形开发软件的作者是 XFree86 Project这个项目的核心成员之一。 之后Keith Packard就以XFree86 为基础 将比较庞大的X Server的精简到了几百KB, 于是就形成了Tiny X Server。 针对Tiny X Server运行在纯XWindow System的架构下的最大的优点就是具有很好的弹性 开发机制,并能大大提高开发速度;因为Tiny X Server与桌面的传统X Server架 构相同,因此其移植性要比很多以Qt、FLTK 、GTK+等为基础开发的软件更加 的方便和容易[13]。虽然Tiny X Server非常方便移植,但是它的体积还是比较大并 且由于它是针对桌面环境开发的, 所以在使用时对于桌面环境中的每个复杂功能 都要进行“校准和调校” ,而往往就是这个时候是最花费时间的,并且有时候还 要进行重新改写,这无疑更加浪费时间。

5.1.3 OpenGUI
OpenGUI最初的名字叫FastGL,很长时间一来就一直存在于Linux操作系统 上。最开始它仅仅支持 256 色的线性显存模式,由于不断地发展目前也可以支持 其他很多显示模式;尽管对于硬件的支持却不是十分强大,目前为止仅仅能支持

49

天津工业大学硕士学位论文

X86 硬件平台,但是OpenGUI现在支持MS-DOS、Linux和QNX等多种操作系统 平台。OpenGUI的结构主要分为三层:最低层是快速图形引擎,该层主要是通过 汇编语言的代码实现的; 中间层提供了兼容于Borland的BGI API的图形绘制API, 包括圆弧、线条、角度、矩形等基本图形;第三层提供了完整的GUI对象集,主 要是通过C++实现的。OpenGUI比较适合于X86 平台下的实时系统,主要采用 LGPL条款发布,但是其可移植性稍差[14]。

5.1.4 MiniGUI
MiniGUI主要是由魏永明先生主持,许多众多自由软件开发志愿者开发的自 由软件项目,并且它是面向嵌入式系统或者实时系统的图形用户界面支持系统, 主要运行于Linux操作系统的环境下。MiniGUI可以分为GAL层和IAL层,其中前 者由于是基于线程结构的,这也就影响了整个系统的可靠性,如果某个进程中某 个线程的因为非法反问而造成了意外错误可能导致整个进程收到很大的影响, 因 此仅仅适合于功能要求单一的场合[15]。

5.1.5 Qt/Embedded
Haavard Nord 和 Eirik Chambe-Eng 于 1991 年开始开发了“Qt” ,1994 年 3 月 4 日创立公司,最早名为 Quasar Technologies,然后更名为 Troll Tech,然后再 改为 Trolltech,中文名称是 “奇趣科技”但是该公司在 2008 年 6 月 17 日被 NOKIA ; 公司收购,以增强该公司在跨平台软件研发方面的实力,更名 Qt Software。 Qt是一个多平台的C++图形用户界面应用程序框架,它是基于面向对象的思 想进行相应开发的,支持真正意义上的组件编程,可以为不同用户提供华丽的用 户界面[16]。所以,从本质上来说Qt是一个跨平台的C++应用程序开发框架,有时 又被称为C++部件工具箱。 Qt被用在KDE桌面环境、 Opera、 Google Earth、 Skype、 Adobe Photoshop Album 和 VirtualBox 的 开 发 中 , 是 诺 基 亚 ( Nokia ) 的 Qt Development Frameworks 部门的产品。使用 Qt只需一次性开发应用程序和用户 界面,无须再次重新编写源代码,便可跨不同桌面和嵌入式操作系统部署这些应 用程序。 综上所述,本文使用的嵌入式图形开发工具为 Qt/Embedded,下文将详细介 绍 Qt/Embedded 的安装、使用和在 ARM 上的移植。

50

第五章 嵌入式系统图形开发

5.2 Qt的特点和应用领域 5.2.1 Qt的特点
基本上,Qt Windows 平台上的 MFC、OWL、VCL、ATL 是同类型的东西, 但是 Qt 具有下列优点: (1)优良的跨平台特性 Qt 支持下列操作系统: Microsoft Windows 95/98、Microsoft Windows NT、 Linux、Solaris、SunOS、HP-UX、Digital UNIX 、Irix、FreeBSD、BSD/OS、SCO、 AIX、OS390、QNX 等等; (2)面向对象 Qt 的良好封装机制使得 Qt 的模块化程度非常高,可重用性较好,对于用户 开发来说是非常方便的; (3)构件支持 Qt 提供信号(signal)和槽(slot)概念,并支持对象之间在彼此不知道对方 信息的情况下进行合作,这使得 Qt 非常适合于真正的构件编程; (4)友好的联机帮助 Qt 提供了大量的联机参考文档,有超文本 HTML 方式,也有 UNIX 帮助页 Man 手册页和补充说明。对于初学者,其中的指南将一步步介绍如何进行 Qt 编 程; (5)便利性 由于 Qt 是一种跨平台的 GUI 工具包,它对编程者隐藏了在处理不同窗口系 统时潜在的问题,Qt 定义了一些类来隐藏在不同操作系统上不同处理方式下的 细节问题; (6)国际化 Qt 为本地化应用提供了完全的支持,所有用户界面文本都可以基于消息翻 译表被翻译成各国语言,Qt 还支持双字节 16bit 国际字符标准; (7)丰富的 API Qt 为专业应用提供了大量的函数,在 Qt 的 API 中含有大约 250 个 C++类, 大多数的类都是 GUI 专有的,甚至还包括正则表达式的处理功能; (8)可用户化外观 Qt 支持主题,基于 Qt 的应用程序能够在 Windows 外观、Motif 外观,以及 其它一些用户化外观主题之间切换; (9)完整的一套组件工具

51

天津工业大学硕士学位论文

Qt 编程的基本模块称之为组件,组件是用户界面的组成部分,Qt 含有用来 创建专业外观的用户界面所需要的所有组件; (10)支持 2D/3D 图形渲染,支持 OpenGL。

5.2.2 Qt的应用领域
有很多出名的例子是都是使用 Qt 开发的,主要有以下实例:Arora(一款跨 平台的开源网页浏览器) 、eva(Linux 版 QQ 聊天软件) 、FreeMat(一个自由开 源的数值计算环境和编程语言) 、Gadu-Gadu(即时通信软件) 、Google 地球 (Google Earth——三维虚拟地图软件) 、ImageVis3D、KDE(著名的桌面环境)、 Elibs 一个许多 KDE 程序都使用的共享库, Amarok、 ( 如 K3b、 KDevelop、 KOffice 等) Last.fm 播放器 、 (著名的互联网音乐社区网站的桌面客户端) Motorola A760 、 (UI 以 Qt/Embedded 建构) 、MythTV9(开源的数字视频录制软件)、Opera(著名 的网页浏览器)、 Qterm(跨平台的 BBS 软件)、 Extended、 Qt Quantum GIS、 Skype(一 个使用人数众多的基于 P2P 的 VOIP 聊天软件)、 SMPlayer(跨平台多媒体播放器)、 TeamSpeak(跨平台的音效通信软件) 、VirtualBox(虚拟机软件)、Xconfig(Linux 的 Kernel 配置工具)、Chmcreator(开源的 chm 开发工具)等各种软件或者平台。

5.3 Qt开发详细介绍 5.3.1 Qt/Embedded架构
Qt/Embedded 以原始 Qt 为基础,并做了许多出色的调整以使它适用于嵌入 式环境。 Qt/Embedded 与以往的 Qt/X11 相比, 主要是通过 Qt API 与 Linux I/O 设 施直接交互, 来作为嵌入式 Linux 的端口; 因为 Qt/Embedded 主要采用 framebuffer 作为底层图形接口而并不再需要 Xlib 库,因此非常节省资源。对于外部的输入 设备 Qt/Embedded 均把它们抽象成为鼠标和键盘的输入事件。 另外, 为了避开繁 琐使用 Xlib/Server 系统,Qt/Embedde 支持直接读写内核缓冲帧,从而大大节省 了系统的资源。

5.3.2 Qt/Embedded窗口系统
通常情况下每个 Qt/Embedded 窗口系统都可以包含一个或者多个进程, 作为 服务器的一个服务进程可以产生鼠标和键盘事件并且可以分配客户显示区域。 另 外,这个服务进程其实就是一个有某些额外权限的客户进程,因为它可以提供一 个用户接口和输入方法给客户端的某个运行起来的应用程序。
52

第五章 嵌入式系统图形开发

客户与服务器之间的通信是使用共享内存的方法实现的, 共享内存是进程间 通讯的最高效的方式,这样能使得通讯的数据传输能够及时的送达,提高整体速 度。 它的通信量需保持最小, 这便就是 Qt/Embedded 库内部层次分明的处理过程。 客户端的主要工作之一是消息的交换,通过使用 QCOP 通道来完成,而服务进 程的工作则比较简单,仅仅需要做的是广播 QCOP 消息给所有监听指定通道的 应用进程,接着应用进程就可以通过原先设定的将特定的信号与特定的槽想关 联,把一个插槽连接到一个负责接收的信号上面了,从而就对消息做出响应并通 过调用响应函数进行处理。消息的传递通常伴随着二进制数据的传输,对于二进 制数据的传输,本文采用了一个 QDataStream 类的序列化过程来完成的。同时, QT 系统中有这样一个类 Qproces 类,它为用户提供了另外一种异步的进程间通 信机制,用于启动一个外部的程序,同时用户可以通过写一个标准的输入和读取 外部程序的标准输出和错误码来和它们进行通信。

5.3.3 Qt/Embedded信号和插槽机制
信号和插槽机制是 Qt 的核心机制,也是 QT 的核心特性。 QT 有着自身的 特点,不同于其他界面开发软件,其中一个重要的地方,便是信号与插槽机制, 因此精通 Qt 编程是基于对信号和插槽机制有着深入的了解;信号和插槽是一种 高级接口,很好的解决了对象与对象之间的通信问题,也是 Qt 区别于其他工具 包的重要地方。 信号和插槽是 Qt 自行定义的一种通信机制, 编程语法是完全 QT 符合标准 C/C++语言的,但是信号与插槽机制却是独立于标准的 C/C++,因此要 正确的处理信号和插槽,必须借助一个称为 moc(Meta Object Compiler)的 Qt 工具, 该工具是一个 C++预处理程序, 它为高层次的事件处理自动生成所需要的 附加代码。 信号与插槽机制是一种强有力的对象间通信机制, 因此完全可以取代原始的 回调和消息映射机制。能够满足用户需要携带任意数量和任意类型的参数,它们 本质上是类型完全安全的,因此就不会像回调函数那样产生 core dumps,使用起 来方便快捷,在取代了标准 C/C++语言中的函数指针后,使得程序不但简洁而且 通俗易懂。 所有从 QObject 或其子类(例如 Qwidget)派生的类都能够包含信号和槽的 机制。一个类对应着一个特殊的对象,当特定的对象状态发生改变时,信号就由 该对象发射出去了,这时,这个对象就完成了它的全部工作了,但是这个对象它 实际上并不知道这个信号是由谁来接收;这就是所谓的信息封装,用于确保对象 被当作一个真正的软件组件来使用。插槽主要用于接收信号,但却通常作为普通 的对象成员函数。一个槽并不知道是否有任何信号与自己相连接,只是单纯地在
53

天津工业大学硕士学位论文

等待指定类型的信号的到来, 而且发送信号的对象本身也并不了解具体的通信机 制。 用户可以将很多信号与单个插槽进行连接, 也可以将单个信号与很多插槽进 行连接,甚至将一个信号与另外一个信号相连接也是可能的,这时无论第一个信 号什么时候发射,系统都将立刻发射第二个信号[17]。总之,可以说信号与插槽构 造了一个强大的部件编程机制。

5.4 Qt的安装和使用 5.4.1 Qt的安装
安装 Qt 集成开发环境需要安装以下的包: Qt Creator:Qt 集成开发环境框架; MinGW:Windows 上的编译器; Qt:Qt 的主程序; Symbina Arm Device Debugger:作为调试器来使用; 运行安装程序第一步,如图 5-1;

图 5-1 运行 QT 安装程序的初始化界面

同意协议并点击下一步,如图 5-2;

54

第五章 嵌入式系统图形开发

图 5-2 选择 QT 需要安装的选项界面

默认安装大小为 1.4GB,点击下一步开始进行安装,如图 5-3;

图 5-3 QT 安装过程界面

55

天津工业大学硕士学位论文

安装时间大约需要 10 分钟,之后就可以安装成功了。

5.4.2 Qt的使用
安装好之后运行 Qt Creator,首先弹出的是欢迎界面,这里可以打开其自带 的各种演示程序,如图 5-4;

图 5-4 QT 建立新工程界面

以下以建立一个最基础的 helloworld 工程为例来介绍工程创建的详细步骤。 通过 File-New 菜单来新建工程,选择 Qt4 Gui Application,如图 5-5;

56

第五章 嵌入式系统图形开发

图 5-5 QT 建立新工程的选择菜单

下面输入工程名和要保存到的文件夹路径,这里的工程名为 helloworld,如 图 5-6 所示;

图 5-6 建立 helloworld 新工程的图例

57

天津工业大学硕士学位论文

这时软件自动添加基本的头文件,因为这个程序我们不需要其他的功能,所 以直接点击 Next,如图 5-7;最后点击 Finish,完成工程的建立。

图 5-7 QT 完成工程编译的界面

58


相关文章:
毕业设计基于QT的GPS车载导航系统(9)第5章 嵌入式....pdf
毕业设计基于QT的GPS车载导航系统(9)第5章 嵌入式系统图形开发_工学_高等教育_教育专区。毕业设计基于QT的GPS车载导航系统,处理器是三星的S3C2410处理器...
毕业设计基于QT的GPS车载导航系统(5)第1章 绪论.pdf
毕业设计基于QT的GPS车载导航系统(5)第1章 ...Consumer)合一的类PC嵌入式系统与技术进入了一个崭新...图形开发的软件使用奇趣公司的 QT 来作为图形 4 第...
毕业设计基于QT的GPS车载导航系统(7)第3章 Linux系....pdf
毕业设计基于QT的GPS车载导航系统(7)第3章 Linux系统简介_工学_高等教育_教育专区。毕业设计基于QT的GPS车载导航系统,处理器是三星的S3C2410处理器,写...
毕业设计基于QT的GPS车载导航系统(3)学术论文的主....pdf
毕业设计基于QT的GPS车载导航系统(3)学术论文的主要创新点_工学_高等教育_教育专区。毕业设计基于QT的GPS车载导航系统,处理器是三星的S3C2410处理器,写...
基于QT的嵌入式终端界面开发毕业设计论文_图文.doc
基于QT的嵌入式终端界面开发毕业设计论文_工学_高等...车载导航系统都要求提 供全功能的 Web 浏览器...它同 XWindow 上的 Motif,Openwin,GTK 等图形 ...
(完整版)基于QT的多媒体车载导航系统GPS毕业论文_图文.doc
(完整版)基于QT的多媒体车载导航系统GPS毕业论文_工学_高等教育_教育专区。单片机论文,毕业设计,毕业论文,单片机设计,硕士论文,研究生论文,单片机研究论文,单片机设计...
(完整版)基于QT的多媒体车载导航系统GPS毕业论文设计_图文.doc
(完整版)基于QT的多媒体车载导航系统GPS毕业论文设计_工学_高等教育_教育专区。单片机论文,毕业设计,毕业论文,单片机设计,硕士论文,研究生论文,单片机研究论文,单片机...
(最新版)基于QT的多媒体车载导航系统GPS毕业论文设计_图文.doc
设计内容 1、多媒体车载导航系统的硬件系统设计:包括 ARM 9 (S3C2410)模块、...与移植模块、基于 Qt 的百度地 图系统集成模块、GPS 设备驱动与嵌入式串口通信...
基于QT的多媒体车载导航系统GPS毕业论文_图文.doc
基于QT的多媒体车载导航系统GPS毕业论文_工学_高等教育_教育专区。毕业设计,毕业论文,毕业论文设计,硕士论文,研究生论文,单片机论文,单片机设计,单片机设计论文 ...
毕业设计基于Qt嵌入式网络聊天系统的设计.doc
毕业设计基于Qt嵌入式网络聊天系统的设计_学习计划...9 3 网络通信模块分析 ... 错误!未定义书签。 3.1...奇趣科技开发的跨平台 C++图形用户界面应用程序开发...
嵌入式车载导航系统的研究与实现.pdf
基于QT的GPS车载导航系统(... 33页 20财富值 基于...对 在我 国随着 嵌入式系统 的发 展和GP S定位...//www.cqvip.com 第 1卷9 第4期 电脑开发与...
基于arm9的汽车导航系统设计.pdf
车载定位导航系统的要求设计系统架构;开发基于 ARM...关键词 :嵌入式系统;车载导航 ARM9 处理器; GPS/...Qt/Embedded 第 1 章 1.1 课题研究背景 绪论 ...
基于ARM9的嵌入式车载导航终端的设计.doc
基于ARM9的嵌入式车载导航终端的设计 - 北华大学毕业设计(论文) 摘 要 随着汽车产业的迅速发展,GPS车载导航系统得到了越来越广泛的应用,已成为汽 车上的重要配置...
基于ARM的嵌入式车载导航系统与开发..doc
基于ARM 的嵌入式车载导航系统开发近年来,随着世界...GPS 模块、GPRS 模块以及外围接口等进行了选型 设计...企业技术开发. 2003.(07) [9]. 李涛,王彦伟. ...
嵌入式车载导航系统的设计.pdf
嵌入式车载导航系统的设计,包括GPS车载导航系统、GIS...满足不了交通量增长的需要,交通 端1:3、图形控制...嵌入式开发-基于ARM9-Li... 5页 免费 Android...
基于嵌入式LINUX的车载导航系统设计.doc
基于嵌入式LINUX的车载导航系统设计_计算机软件及应用...选择 Qt/Embedded 作为图形用户界面 (GUI) 开发环境...第 3 页 图 2 GPS 定位原理图 程式中各个参数...
基于QT的多媒体车载导航系统GPS毕业论文_图文.doc
基于QT的多媒体车载导航系统GPS毕业论文_工学_高等教育_教育专区。毕业论文,单片机论文,毕业论文设计,毕业过关论文,毕业设计,课程设计,硕士论文,研究生论文 ...
基于嵌入式Linux的车载定位系统设计_图文.pdf
GPS GIS 中文核心期刊<微计算机信息)(测控自动化)2008年第24卷第5-1期 文章编号:1008-0570(2008)05一l-018802 基于嵌入式Linux的车载定位系统设计Designof...
车载导航系统项目介绍.doc
车载导航系统中包含了很多前卫、 实用的技术, 如: GPS 应用技术、 GPRS 应用技术、 GUI 开发技术、多媒体功能应用技术、 传感器技术、嵌入式操作系统应用开发技术...
嵌入式系统在车载导航领域中的应用.doc
图一 2.1 车载导航系统应用 GPS 车辆应用系统一般...图形编辑 网络 投影 空间数据管理 嵌入式操作系统图...9页 免费 GPS在交通领域中的应用 4页 1下载券 ...