QT电子地图设计与实现+需求分析+详细设计+程序流程图 第3页
图2-1 QT的实现结构图Qt/Embedded 的底层图形引擎基于framebuffer。Framebuffer 驱动程序的实现分为两个方面:一方面是对LCD及其相关部分的初始化,包括画在缓冲区的创建和对DMA通道的设置;另外一方面是对画面缓冲区的读写,具体到代码为read、write、lseek等系统调用接口。至于将画面缓冲区的内容输出到LCD显示屏上,则由硬件自动完成。对于软件来说是透明的。当对于DMA通道和画面缓冲区设置完成后,DMA开始正常工作,并将缓冲区中的内容不断发送到LCD上。这个过程是基于DMA对于LCD的不断刷新的。基于该特性,framebuffer驱动程序必须将画面缓冲区的存储空间(物理空间)重新映射到一个不加高缓存和写缓存的虚拟地址区间中,这样能才保证应用程序通过mmap将该缓存映射到用户空间后,对于该画面缓存的写操作能够实时的体现在LCD上。
QT程序是基于C++编写的,图形用户界面编程同时需要运行效率和高水平的灵活性。Qt通过结合C++的速度为这一领域提供了Qt对象模型。
Qt把下面这些特性添加到了C++当中:
一种被称为信号和槽的非常强大的机制;可查询和可设计的属性项;强大的事件和事件过滤器;根据上下文进行国际化的字符串翻译;完善的时间间隔驱动的计时器等。
许多Qt的特性是基于QObject的继承,通过标准C++技术实现的。
QApplication是必须构造的Qt主对象,需要在一开始的时候就构造这个对象,并把命令行参数传递给这个对象,每个Qt应用程序有且仅有一个QApplication对象,该对象必须在做其他事之前创建,这个对象处理一些底层操作,如事件处理、字符串本地化和控制界面外观等。
信号和信号处理函数是GUI应用程序用来响应用户输入的基本机制,也是所有GUI库的核心特征,Qt的信号处理机制由信号(signal)和槽(slot)构成,它们相当于GTK+中的信号和回调函数。在Qt中回调函数就叫做槽。
信号和槽用于对象间的通讯,它的基本语法为:
connect(object1,signal1,object2,slot1);毕业论文
http://www.751com.cn2.3 QT Graphics View Framework简介
2.3.1 Graphics View层次结构本文来自辣"文'论-文|网
Graphics View 提供一个强大的自定义2D平面图元并处理它们之间相互作用的接口,以及将一个这些图元可视化的view控件,它支持旋转和缩放。该框架还包含一个事件传递机制,允许画布和画布上的图元之间精确地双向交互。图元处理鼠标键盘事件,如鼠标按下、移动、释放、点击和双击事件,也跟踪鼠标移动。另外,Graphics View使用BSP树来提供快速的图元搜索,从而能够支持大画布显示,甚至是包含数百万图元的画布。
Graphics View架构分作3层。最底层是一系列QGraphicsItem,也就是最基本的图元。所有要显示的对象都必须包装成QGraphicsItem或其子类的对象,然后调用QGraphicsScene::addItem方法把图元加入画布中。中间层是QGraphicsScene对象都添加或删除图元。当显示QGraphicsScene对象时,它包含的所有的QGraphicsItem对象都会显示。最上层是QGraphicsView,这是个窗体控件,专门负责画布的显示。QGraphicsView和QGraphicsScene类似于MVC架构中的Model和View的关系,或者Observer设计模式的Data和View的关系。QGraphicsView控制图像显示,并负责处理或向QGraphicsScene或QGraphicsItem转发键盘鼠标等用户交互事件;QgraphicsScene包括要显示的QGraphicsItem列表数据信息。QGraphicsView和QGraphicsScene是多对一的关系,即一个QGraphicsScene可以放多个QGraphicsView中以不同方式显示。
图2-2 Graphics View三元素之间的关系Graphics View基本类有各自不同的坐标系。QGraphicsScene 类的坐标系是以中心为原点(0,0)。
图2-3 QGraphicsScene的坐标系
QGraphicsView 类继承自QWidget类,因此它和其他的QWidget类一样以窗口的左上角作为自己坐标系的原点。
图2-4 QGraphicsView 的坐标系
QGraphicsItem则有自己的坐标系,在调用QGraphicsItem类的paint()函数重画项目时是以此坐标系为基准。
图2-5 QGraphicsItem 的坐标系
3种坐标系统可以相互转换。QT提供了相应的接口。例如,通过调用QGraphicsItem::mapToScene和QGraphicsItem::mapFormScene可以在Item坐标系统和Scene坐标系统之间进行转换,QGraphicsItem::mapToParent和QGraphicsItem::mapParent可以在Item坐标系统和它的父Item坐标系统之间进行转换,QGraphicsView::mapFromScene和QGraphicsView::mapToScene可以在View坐标系统和Scene坐标系统之间进行转换。
2.3.2 QGraphicsItem
QGraphicsItem提供了丰富的子类为程序的编写带来了很大的方便。有QGraphicsEllipseItem,QGraphicsLineItem,QGraphicsPathItem,QGraphicsPixmapItem,QGraphicsPolygonItem,QGraphicsRectItem,QGraphicsSimpleTextItem,QGraphicsTextItem一共8种。
在地图的绘制中QGraphicsLineItem可绘制道路,河流。QGraphicsPathItem可以绘制一些曲线。
上一页 [1] [2] [3] [4] [5] [6] [7] 下一页
QT电子地图设计与实现+需求分析+详细设计+程序流程图 第3页下载如图片无法显示或论文不完整,请联系qq752018766