基于QT的校园导航系统的设计与实现.doc
《基于QT的校园导航系统的设计与实现.doc》由会员分享,可在线阅读,更多相关《基于QT的校园导航系统的设计与实现.doc(54页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、 北京邮电大学毕业设计基于QT的校园导航系统的设计与实现摘 要本文主要是介绍利用Linux系统和QT制作校园导航系统的设计方法。 使用的操作系统是Linux系统,但是在windows系统下也是可以使用的,所使用的语言是c+,开发工具是QT。设计的主要目的是能够简单地观看整个校园的风景,使不熟悉校园的人能够知道每个景点的位置、介绍,查看学校的建筑物,包括建筑物的图片以及建筑物的描述。尤其,这个系统可以找出两个建筑物之间最短的距离,从而迅速地帮助不熟悉校园的人了解整个校园环境,然后找到最好的方法去参观整个校园,除此之外,该系统还可以查询两个景点之间的所有路径,有助于来往者跟好的选择路径。导航系统是
2、在Linux系统(Linux下开发,windows下也可以运行)下,先利用QT制作出用户界面,再利用C+编程语言设计出基本功能并与界面相结合。本文设计的导航系统能够实现以下三大功能:第一,它可以测量两个建筑物之间的距离,同时在查询两个景点之间的路径信息的同时,提供起始点与终点建筑物的图片信息,便于更好的确认;第二,它可以帮助来访者从众多的路线中选出最短的一条,同时会提供两点之间的所有路径;第三,它可以在标志性建筑添加一些描述信息和图片,还可以查看从该建筑物到所有其他建筑物的路径信息。关键词 路径规划;最短路径算法;校园导航;qtThe school navigate system based
3、on Linux and Qt CreatorAbstractMainly introduced in this paper using the Linux system and QT campus navigation system design method. Use of the operating system is Linux system, but also can use under Windows system, the language is used by c + +, development tools is QT. The main purpose of design
4、is to be able to simply watch the scenery of the whole campus, who is familiar with the campus can know the location of each scenic spot, introduction, see the school buildings, including the structure of the pictures and the description of the building. Especially, the system can find out the short
5、est distance between two buildings, so as to help people who are not familiar with the campus rapidly understand the campus environment, and find the best way to visit the whole campus, in addition, the system can also query all paths between two spots, help going back and forth with good choice pat
6、h. Navigation system is in the Linux system (under Linux development, also can run under Windows), the first user produced using QT, using c + + programming language basic design. Function and combining with the interface.The navigation system is designed in this paper can achieve the following thre
7、e functions: first, it can measure the distance between the two buildings, at the same time the query path information between two sites at the same time, provide the picture of the starting point and end point building information, to facilitate better confirmation; Second, it can help visitors fro
8、m many choose the shortest route, at the same time will provide all the path between two points; Third, it can add some description in landmark information and pictures, you can also view from the building to all the other path information of the building. Key words path planning; ant algorithm; the
9、 campus navigation; qtii目录摘 要iAbstractii1 绪 论11.1概述11.2研究背景11.3研究目标11.4本章小结12 QT简介22.1 QT的背景介绍22.2 QT实现的结构原理22.3 QT QWidget简介32.3.1 详细描述32.3.2 QWidget 事件简介42.4 QT应用程序的实现62.5 本章小结73 需求分析83.1 需求分析概述83.2 需求分析的特点83.3 需求分析需要完成的任务83.4 实际需求分析93.4.1 用户需求分析93.4.2 功能需求分析93.4.3 实际需求分析93.4.4 系统性能需求分析93.5 本章小结10
10、4 总体设计114.1 总体设计概述114.2 系统总体设计描述114.3 系统总体设计模块划分114.3.1 主要模块划分图124.3.2 显示系统主界面模块设计124.3.3 查询导航有关人员模块设计134.3.4 导航主界面的模块的设计134.4 本章总结145 详细设计155.1 详细设计概述155.2 校园导航系统主程序流程图155.3 单源最短路径算法介绍165.3.1 Dijkstra(迪杰斯特拉)算法165.3.2 floyed(弗洛耶德)算法175.4 图中节点与路径的存储195.4.1 节点的存储195.4.2 节点间路径长度的存储195.4.3 整个图的存储205.5 本
11、章总结206 系统实现及运行结果216.1 界面设计216.1.1 主窗体设计216.1.2 子页面布局设计246.1.3 更换起始点的实现276.1.4 点击主页面中的查询路径具体实现296.1.5 点击查看景点信息描述的实现296.2 图的创建316.3 路径查询的具体实现316.3.1 单源最短路径算法具体实现326.3.2 所有可达路径的查询的具体实现336.3.3 每一个点到它可达的所有点的查询的具体实现336.4 选择系统是否退出的具体实现346.5 本章小结357 测试367.1 测试目标367.2 测试预期结果367.3 测试用例的设计367.4 本章小结38结论39参考文献4
12、0致谢41外文原文42中文翻译471 绪 论1.1 概述现在科技越来越发达,手机上的软件,电脑上的软件越来越多,所以开发小的程序也越来越有必要。QT具备跨平台,易扩展,界面华丽,性能稳定等优点。因此,以嵌入式处理器作为硬件平台,以QT作为程序框架,两者的完美结合必将成为未来技术的发展方向。1.2 研究背景现在,汽车正在普及,道路不断建设,城际间的经济往来更加频繁,活动的区域也越来越大。为了提高生活质量,大量的休闲活动、探险活动的举行使我们并不局限在自己认识的一小块区域中,不认识道路,找不到目的地的情况也屡有发生。就此,各种各样的导航仪逐渐走进我们的生活。无论什么导航仪最主要的部分都是电子地图。
13、开发电子地图成为了导航仪的关键。根据调查,电子地图制作困难而且价格相当昂贵,给导航仪的开发带来了很多不便。自主绘制电子地图,编写电子地图应用程序,不管是从经济上还是研究上都具有非常大的意义。现在,各个学校都有了自己的导航系统,但是开发工具语言,还有平台不一样。所以,如果拥有一个跨平台的程序的话,那将会给我们的开发节省了大量的时间。QT正是一个支持多平台的C+图形用户界面应用程序框架。它提供给应用程序开发者建立艺术级的图形用户界面所需的所用功能。Qt是完全面向对象的很容易扩展,并且允许真正地组件编程。所以使用QT作为应用程序框架是一个不错的选择。1.3 研究目标本课题名为校园地理信息系统。本系统
14、以太原理工大学为模型,旨在建立一个本学校的导航系统,可以根据不同人的要求,足不出户,就可以浏览校园,得到各种信息基于上述背景,开发一个校园导航项目,使用linux搭配qt来构建这个项目。利用QT4作为系统应用层的程序框架。开发一个可以运行的小客户端。这个客户端虽然是在linux下开发的,但是它是可移植的,在windows下也可以运行。1.4 本章小结本章主要介绍本项目的选题背景、意义,选题目标。通过介绍,了解当今社会主要是校园,导航系统的需求以及重要性,明白研究该系统的必要性。2 QT简介2.1 QT的背景介绍Qt是一个1991年由奇趣科技开发的跨平台C+图形用户界面应用程序开发框架。它既可以
15、开发GUI程序,也可用于开发非GUI程序,比如控制台工具和服务器。Qt是面向对象的框架,使用特殊的代码生成扩展(称为元对象编译器(Meta Object Compiler, moc))以及一些宏,易于扩展,允许组件编程。2008年,奇趣科技被诺基亚公司收购,QT也因此成为诺基亚旗下的编程语言工具。2012年,Qt被Digia收购。2014年4月,跨平台集成开发环境Qt Creator 3.1.0正式发布,实现了对于iOS的完全支持,新增WinRT、Beautifier等插件,废弃了无Python接口的GDB调试支持,集成了基于Clang的C/C+代码模块,并对Android支持做出了调整,至此
16、实现了全面支持iOS、Android、WP。 Qt Creator包含了一套用于创建和测试基于Qt应用程序的高效工具,包括:一个高级的C+代码编辑器 上下文感知帮助系统 可视化调试器 源代码管理 项目和构建管理工具.优良的跨平台特性:Qt支持下列操作系统: Microsoft Windows 95/98, Microsoft Windows NT, Linux, Solaris, SunOS, HP-UX, Digital UNIX (OSF/1, Tru64), Irix, FreeBSD, BSD/OS, SCO, AIX, OS390,QNX 等等。面向对象:Qt 的良好封装机制使得 Q
17、t 的模块化程度非常高,可重用性较好,对于用户开发来说是非常 方便的。 Qt 提供了一种称为 signals/slots 的安全类型来替代 callback,这使得各个元件 之间的协同工作变得十分简单。2.2 QT实现的结构原理Qt/Embedded是Trolltech公司开发的面向嵌入式系统的Qt版本,与X11版本的Qt在最大程度上接口兼容,采用帧缓存(framebuffer)作为底层图形接口。Qt/Embedded类库完全采用C+封装,并且有着丰富的控件资源以及较好的可移植性,大范围的Qt/Embedded API可用于多种开发项目。Qt/Embedded的实现结构如图2-1所示:图2-1
18、 QT的实现结构图Qt/Embedded 的底层图形引擎基于framebuffer。Framebuffer 驱动程序的实现分为两个方面:一方面是对LCD及其相关部分的初始化,包括画在缓冲区的创建和对DMA通道的设置;另外一方面是对画面缓冲区的读写,具体到代码为read、write、lseek等系统调用接口。至于将画面缓冲区的内容输出到LCD显示屏上,则由硬件自动完成。对于软件来说是透明的。当对于DMA通道和画面缓冲区设置完成后,DMA开始正常工作,并将缓冲区中的内容不断发送到LCD上。这个过程是基于DMA对于LCD的不断刷新的。基于该特性,framebuffer驱动程序必须将画面缓冲区的存储空
19、间(物理空间)重新映射到一个不加高缓存和写缓存的虚拟地址区间中,这样能才保证应用程序通过mmap将该缓存映射到用户空间后,对于该画面缓存的写操作能够实时的体现在LCD上。QT程序是基于C+编写的,图形用户界面编程同时需要运行效率和高水平的灵活性。Qt通过结合C+的速度为这一领域提供了Qt对象模型。Qt把下面这些特性添加到了C+当中: 一种被称为信号和槽的非常强大的机制;可查询和可设计的属性项;强大的事件和事件过滤器;根据上下文进行国际化的字符串翻译;完善的时间间隔驱动的计时器等。 许多Qt的特性是基于QObject的继承,通过标准C+技术实现的。QApplication是必须构造的Qt主对象,
20、需要在一开始的时候就构造这个对象,并把命令行参数传递给这个对象,每个Qt应用程序有且仅有一个QApplication对象,该对象必须在做其他事之前创建,这个对象处理一些底层操作,如事件处理、字符串本地化和控制界面外观等。信号和信号处理函数是GUI应用程序用来响应用户输入的基本机制,也是所有GUI库的核心特征,Qt的信号处理机制由信号(signal)和槽(slot)构成,它们相当于GTK+中的信号和回调函数。在Qt中回调函数就叫做槽。信号和槽用于对象间的通讯,它的基本语法为:connect(object1,signal1,object2,slot1);2.3 QT QWidget简介2.3.1
21、详细描述QWidget 类是所有用户界面对象的基类。 通俗的来讲, 基本上所有的 UI 类都是由 QWidget Qt 继承出来的,而 QWidget 继承于 QObject, 大家可以查阅 Qt source 即可发现一些微妙的写法,如这篇文章有详细介绍:Qt 库对象数 据的声明和使用 窗口层次 窗口部件是用户界面的一个原子:它从窗口系统接收鼠标、键盘和其它事件,并且在屏幕上 绘制自己的表现。每一个窗口部件都是矩形,并且它们按 Z 轴顺序排列的。一个窗口部件可 以被它的父窗口部件或者它前面的窗口部件盖住一部分。 QDialog 是最普通的顶级窗口。 不被嵌入到一个父窗口部件的窗口部件被叫做顶
22、级窗口部件。 通常情况下, 顶级窗口部件是有框架和标题栏的窗口 (尽管如果使用了一定的窗口部件标记,创建顶级窗口部件时也可能没有这些装饰。)在 Qt 中,QMainWindow 和和不同的 QDialog 的子类是最普通的顶级窗口。 一个没有父窗口部件的窗口部件一直是顶级窗口部件。 非顶级 窗口部件是子窗口部件。 它们是它们的父窗口部件中的子窗口。 你通常不能在视觉角度从它 们的父窗口部件中辨别一个子窗口部件。在 Qt 中的绝大多数其它窗口部件仅仅作为子窗口 部件才是有用的。(当然把一个按钮作为或者叫做顶级窗口部件也是可能的,但绝大多数人 喜欢把他们的按钮放到其它按钮当中,比如 QDialog
23、。) QWidget 有很多成员函数,但是它们中的一些有少量的直接功能:例如,QWidget 有一个字体属性,但是它自己从来不用。有很多继承它的子类提供了实际的功能,比如 QPushButton、 QListBox 和 QTabDialog 等等。 每一个窗口部件构造函数接受一个或两个标准参数: 1. QWidget *parent = 0 是新窗口部件的父窗口部件。如果为 0(默认) ,新的窗口部件将是一个顶级窗口部件。如果不是,它将会使 parent 的一个孩子,并且被 parent 的几何形状所强 迫(除非你指定 WType_TopLevel 作为窗口部件标记)。2.3.2 QWidge
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 QT 校园 导航系统 设计 实现
限制150内