一种使用Qt进行二维图层的绘制及事件处理方法技术

技术编号:15615904 阅读:279 留言:0更新日期:2017-06-14 03:19
本发明专利技术公开了一种使用Qt进行二维图层的绘制及事件处理方法,该方法提炼出不同基本图形绘制的条件,结合手势操作,简化绘制过程;并对绘制完成的图层提供状态管理,绘制多个且有重叠区域的图形时,本方法首先对选择点进行坐标映射,实现全局坐标系转换成图层内部坐标系,再按照队列创建顺序逆向交由图层,图层依据本身类型自动调用不同位置关系判定算法,最终实现状态切换;同时支持对产生的系统事件进行状态跟踪,将产生的事件进行图层间的传递,由图层判断事件是否需要处理,直至事件被处理或者被忽略,此时跟踪状态结束。该方法有效的解决了Qt二维图层绘制过程繁琐、事件传播不穿透的问题。

【技术实现步骤摘要】
一种使用Qt进行二维图层的绘制及事件处理方法
本专利技术涉及计算机图层处理领域,特别是涉及一种使用Qt进行二维图层的绘制及事件处理方法。
技术介绍
Qt提供了两种绘图机制,一种是GraphicsView机制,另外一种是基于QWidget窗口部件自定义绘制图形。前者已实现了图层选择、事件处理、状态管理等功能,但后者并未提供,此方法主要针对后者在图形绘制上进行功能的强化。QWidget窗口是一种矩形、透明的窗口图层,可对其编程实现图形绘制、事件处理等功能。但在实际的应用中会出现如下几个问题(如图1所示):一、图层绘制:在使用QWidget进行图层绘制时,其本身只提供了绘制的通用函数,但未指定绘制的过程,这样限制了用户绘制图形的尺寸,位置。二、图层选择:在蓝色矩形图层中,只有椭圆对用户可见。因QWidget会处理其区域内的所有事件,因此当点击空白区域时,蓝色图层依然会被选中,这就造成了选择上的错误。三、事件传播:屏幕上新建蓝色矩形图层并绘制椭圆,其与绿色的图层产生区域重合。因蓝色矩形是透明,用户本想点击重叠区域选择绿色图层进行操作,但因遮挡原因,蓝色矩形会拦截传播向绿色矩形的事件,造成绿色本文档来自技高网...
一种使用Qt进行二维图层的绘制及事件处理方法

【技术保护点】
一种使用Qt进行二维图层的绘制及事件处理方法,其特征在于,主要包括如下步骤:一、图层绘制:对绘制的图层进行分类,对每种类型绘制时所需要提供的条件进行整理,绘制完成之后,图层自动进行尺寸的调整,将尺寸调整到可以最小包围绘制图形,然后将此图形加入到图层绘制队列,进行托管管理;二、图层选择:在图层范围内点击任意部分激活图层;事件产生后,由队列管理模块将事件按照入队顺序反方向交由图层,图层在接收到事件后,自动将事件产生的位置转换成自身坐标值;图层依照自身的类型,加入旋转角度,判断绘制区域是否包含此点;在处理后,如果事件点位置在绘制图层区域之内,图层会进行选中,方便下步操作,否则事件忽略处理;三、事件传...

【技术特征摘要】
1.一种使用Qt进行二维图层的绘制及事件处理方法,其特征在于,主要包括如下步骤:一、图层绘制:对绘制的图层进行分类,对每种类型绘制时所需要提供的条件进行整理,绘制完成之后,图层自动进行尺寸的调整,将尺寸调整到可以最小包围绘制图形,然后将此图形加入到图层绘制队列,进行托管管理;二、图层选择:在图层范围内点击任意部分激活图层;事件产生后,由队列管理模块将事件按照入队顺序反方向交由图层,图层在接收到事件后,自动将事件产生的位置转换成自身坐标值;图层依照自身的类型,加入旋转角度,判断绘制区域是否包含此点;在处理后,如果事件点位置在绘制图层区域之内,图层会进行选中,方便下步操作,否则事件忽略处理;三、事件传播:管理者从事件队列里取出一事件,查看此事件源,依照图层唯一标识在队列中定位此图层,之后会依次地将事件交由在...

【专利技术属性】
技术研发人员:王卓妮
申请(专利权)人:南京仁谷系统集成有限公司
类型:发明
国别省市:江苏,32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1