CN106815029A - 一种使用Qt进行二维图层的绘制及事件处理方法 - Google Patents

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

Info

Publication number
CN106815029A
CN106815029A CN201710059728.5A CN201710059728A CN106815029A CN 106815029 A CN106815029 A CN 106815029A CN 201710059728 A CN201710059728 A CN 201710059728A CN 106815029 A CN106815029 A CN 106815029A
Authority
CN
China
Prior art keywords
layer
event
carries out
queue
dimentional
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201710059728.5A
Other languages
English (en)
Other versions
CN106815029B (zh
Inventor
王卓妮
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nanjing Kernel System Integration Co Ltd
Original Assignee
Nanjing Kernel System Integration Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nanjing Kernel System Integration Co Ltd filed Critical Nanjing Kernel System Integration Co Ltd
Priority to CN201710059728.5A priority Critical patent/CN106815029B/zh
Publication of CN106815029A publication Critical patent/CN106815029A/zh
Application granted granted Critical
Publication of CN106815029B publication Critical patent/CN106815029B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • User Interface Of Digital Computer (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

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

Description

一种使用Qt进行二维图层的绘制及事件处理方法
技术领域
本发明涉及计算机图层处理领域,特别是涉及一种使用Qt进行二维图层的绘制及事件处理方法。
背景技术
Qt提供了两种绘图机制,一种是GraphicsView机制,另外一种是基于QWidget窗口部件自定义绘制图形。前者已实现了图层选择、事件处理、状态管理等功能,但后者并未提供,此方法主要针对后者在图形绘制上进行功能的强化。
QWidget窗口是一种矩形、透明的窗口图层,可对其编程实现图形绘制、事件处理等功能。但在实际的应用中会出现如下几个问题(如图1所示):
一、图层绘制:在使用QWidget进行图层绘制时,其本身只提供了绘制的通用函数,但未指定绘制的过程,这样限制了用户绘制图形的尺寸,位置。
二、图层选择:在蓝色矩形图层中,只有椭圆对用户可见。因QWidget会处理其区域内的所有事件,因此当点击空白区域时,蓝色图层依然会被选中,这就造成了选择上的错误。
三、事件传播:屏幕上新建蓝色矩形图层并绘制椭圆,其与绿色的图层产生区域重合。因蓝色矩形是透明,用户本想点击重叠区域选择绿色图层进行操作,但因遮挡原因,蓝色矩形会拦截传播向绿色矩形的事件,造成绿色图层无法选中。
发明内容
本发明主要解决的技术问题是提供一种使用Qt进行二维图层的绘制及事件处理方法,能够有效地解决Qt二维图层绘制过程繁琐、事件传播不穿透的问题。
为解决上述技术问题,本发明采用的一个技术方案是:提供一种使用Qt进行二维图层的绘制及事件处理方法,主要包括如下步骤:
一、图层绘制:对绘制的图层进行分类,对每种类型绘制时所需要提供的条件进行整理,绘制完成之后,图层自动进行尺寸的调整,将尺寸调整到可以最小包围绘制图形,然后将此图形加入到图层绘制队列,进行托管管理;
二、图层选择:在图层范围内点击任意部分激活图层;事件产生后,由队列管理模块将事件按照入队顺序反方向交由图层,图层在接收到事件后,自动将事件产生的位置转换成自身坐标值;图层依照自身的类型,加入旋转角度,判断绘制区域是否包含此点;在处理后,如果事件点位置在绘制图层区域之内,图层会进行选中,方便下步操作,否则事件忽略处理;
三、事件传播:管理者从事件队列里取出一事件,查看此事件源,依照图层唯一标识在队列中定位此图层,之后会依次地将事件交由在此图层之前创建的图层进行处理,并对此事件进行跟踪;如果图层处理了该事件,那么传播过程结束;若图层不处理事件,管理者会将事件交由下一个图层,如果所有图层都不进行处理,那么管理者将事件交由系统自行处理,此时单个事件传播过程结束,管理者会继续从事件队列中取出处理,直至事件处理完成;
四、队列管理:队列管理模块保存了所创建的所有图层,依照图层唯一的ID进行快速访问,其掌握着从图层创建后所有的状态。
优选的,步骤一中的图层分类主要分为:正方形、矩形、圆角矩形、圆、椭圆、扇形、户型、多边形、文字。
优选的,步骤四中的图层创建后的状态主要包括:图层选中、图层属性更改、图层删除。
本发明的有益效果是:本发明提炼出不同基本图形绘制的条件,结合手势操作,简化绘制过程;并对绘制完成的图层提供状态管理;该方法有效的解决了Qt二维图层绘制过程繁琐、事件传播不穿透的问题。
附图说明
图1是现有技术中基于QWidget窗口部件自定义绘制图形的原理示意图;
图2是本发明一种使用Qt进行二维图层的绘制及事件处理方法中事件传播流程图。
具体实施方式
下面结合附图对本发明的较佳实施例进行详细阐述,以使本发明的优点和特征能更易于被本领域技术人员理解,从而对本发明的保护范围做出更为清楚明确的界定。
本发明实施例包括如下步骤:
一、图层绘制:对绘制的图层进行分类,对每种类型绘制时所需要提供的条件进行整理,绘制完成之后,图层自动进行尺寸的调整,将尺寸调整到可以最小包围绘制图形,然后将此图形加入到图层绘制队列,进行托管管理;
二、图层选择:在图层范围内点击任意部分激活图层;事件产生后,由队列管理模块将事件按照入队顺序反方向交由图层,图层在接收到事件后,自动将事件产生的位置转换成自身坐标值;图层依照自身的类型,加入旋转角度,判断绘制区域是否包含此点;在处理后,如果事件点位置在绘制图层区域之内,图层会进行选中,方便下步操作,否则事件忽略处理;
三、事件传播:管理者从事件队列里取出一事件,查看此事件源,依照图层唯一标识在队列中定位此图层,之后会依次地将事件交由在此图层之前创建的图层进行处理,并对此事件进行跟踪;如果图层处理了该事件,那么传播过程结束;若图层不处理事件,管理者会将事件交由下一个图层,如果所有图层都不进行处理,那么管理者将事件交由系统自行处理,此时单个事件传播过程结束,管理者会继续从事件队列中取出处理,直至事件处理完成;
四、队列管理:队列管理模块保存了所创建的所有图层,依照图层唯一的ID进行快速访问,其掌握着从图层创建后所有的状态。
进一步的,步骤一中的图层分类主要分为:正方形、矩形、圆角矩形、圆、椭圆、扇形、户型、多边形、文字。如当前图形库不满足需求时,也留有适当的接口,进行扩展。
进一步的,步骤二图层选择,QWidget图层是矩形,因此只要在其矩形范围内点击任意部分都可以激活图层。然而有的图层形状不是矩形,如圆、椭圆、弧、不规则图形等,在处理这些图形选择时,就不能简单的将其量化成矩形处理。如面对简单的圆形会计算点击的位置和圆心距离与半径进行比对;面对弧形时,会结合旋转角度,以及点击容差值进行计算;复杂的如不规则的多边形,会利用跨积算法等更精确的判定。
图2 是队列处理抛出事件的流程图:鼠标对某个图层进行操作,如果鼠标的位置没在当前图层绘制的图形路径上,当前图层会将鼠标点击的位置映射成全局值之后,并加入自身的信息一并包装成事件抛给队列管理者。队列管理者接收到事件之后,解析事件并获取有关抛出图层和事件的描述信息,从当前图层队列中找出抛出图层所在的索引,然后从此索引开始,依次取出图层。调用图层通用的接口,判断所取出的图层是包含了当前的鼠标点,当所取出的图层包含了当前鼠标,那么此图层会根据鼠标的类型,如单击、双击、移动,来分别进行响应处理。当处理成功后,通知队列管理者终止当前事件的传播。如果不包含,则管理者会继续取出下一个图层。重复上面的过程,直到有图层处理当前事件,或者没有图层处理该事件而结束。当没有图层处理该事件,队列管理者会将此事件交由系统进行处理,并等待下一次事件到来。
进一步的,队列管理模块保存了所创建的所有图层,可以依照图层唯一的ID进行快速访问,其掌握着从图层创建后所有的状态,如:图层选中、图层属性更改、图层删除等。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (3)

1.一种使用Qt进行二维图层的绘制及事件处理方法,其特征在于,主要包括如下步骤:
一、图层绘制:对绘制的图层进行分类,对每种类型绘制时所需要提供的条件进行整理,绘制完成之后,图层自动进行尺寸的调整,将尺寸调整到可以最小包围绘制图形,然后将此图形加入到图层绘制队列,进行托管管理;
二、图层选择:在图层范围内点击任意部分激活图层;事件产生后,由队列管理模块将事件按照入队顺序反方向交由图层,图层在接收到事件后,自动将事件产生的位置转换成自身坐标值;图层依照自身的类型,加入旋转角度,判断绘制区域是否包含此点;在处理后,如果事件点位置在绘制图层区域之内,图层会进行选中,方便下步操作,否则事件忽略处理;
三、事件传播:管理者从事件队列里取出一事件,查看此事件源,依照图层唯一标识在队列中定位此图层,之后会依次地将事件交由在此图层之前创建的图层进行处理,并对此事件进行跟踪;如果图层处理了该事件,那么传播过程结束;若图层不处理事件,管理者会将事件交由下一个图层,如果所有图层都不进行处理,那么管理者将事件交由系统自行处理,此时单个事件传播过程结束,管理者会继续从事件队列中取出处理,直至事件处理完成;
四、队列管理:队列管理模块保存了所创建的所有图层,依照图层唯一的ID进行快速访问,其掌握着从图层创建后所有的状态。
2.根据权利要求1所述的一种使用Qt进行二维图层的绘制及事件处理方法,其特征在于,步骤一中的图层分类主要分为:正方形、矩形、圆角矩形、圆、椭圆、扇形、户型、多边形、文字。
3.根据权利要求1所述的一种使用Qt进行二维图层的绘制及事件处理方法,其特征在于,步骤四中的图层创建后的状态主要包括:图层选中、图层属性更改、图层删除。
CN201710059728.5A 2017-01-24 2017-01-24 一种使用Qt进行二维图层的绘制及事件处理方法 Active CN106815029B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710059728.5A CN106815029B (zh) 2017-01-24 2017-01-24 一种使用Qt进行二维图层的绘制及事件处理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710059728.5A CN106815029B (zh) 2017-01-24 2017-01-24 一种使用Qt进行二维图层的绘制及事件处理方法

Publications (2)

Publication Number Publication Date
CN106815029A true CN106815029A (zh) 2017-06-09
CN106815029B CN106815029B (zh) 2019-10-22

Family

ID=59111568

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710059728.5A Active CN106815029B (zh) 2017-01-24 2017-01-24 一种使用Qt进行二维图层的绘制及事件处理方法

Country Status (1)

Country Link
CN (1) CN106815029B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109582429A (zh) * 2018-12-07 2019-04-05 上海航天电子通讯设备研究所 一种基于qt平台的圆形p显空情显示方法及装置
CN109584341A (zh) * 2018-11-15 2019-04-05 腾讯科技(深圳)有限公司 在画板上绘图的方法及装置
CN110471658A (zh) * 2019-07-10 2019-11-19 成都摹客科技有限公司 一种图层的选择方法、系统及计算机存储介质
CN112204619A (zh) * 2019-04-23 2021-01-08 华为技术有限公司 处理图层的方法和装置
CN116110072A (zh) * 2023-04-12 2023-05-12 江西少科智能建造科技有限公司 一种cad图纸解析方法及系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102567025A (zh) * 2011-12-29 2012-07-11 深圳Tcl新技术有限公司 基于qt的2d/3d的图形绘制方法及装置
CN105608723A (zh) * 2015-12-18 2016-05-25 长城信息产业股份有限公司 一种国产计算机平台下Qt画图性能的优化方法
CN105739984A (zh) * 2016-01-29 2016-07-06 中国人民解放军63811部队 一种基于Qt的高可维护性数据显示框架
CN106326101A (zh) * 2015-07-06 2017-01-11 北京华大九天软件有限公司 一种基于qt的应用程序自动化测试方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102567025A (zh) * 2011-12-29 2012-07-11 深圳Tcl新技术有限公司 基于qt的2d/3d的图形绘制方法及装置
CN106326101A (zh) * 2015-07-06 2017-01-11 北京华大九天软件有限公司 一种基于qt的应用程序自动化测试方法
CN105608723A (zh) * 2015-12-18 2016-05-25 长城信息产业股份有限公司 一种国产计算机平台下Qt画图性能的优化方法
CN105739984A (zh) * 2016-01-29 2016-07-06 中国人民解放军63811部队 一种基于Qt的高可维护性数据显示框架

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109584341A (zh) * 2018-11-15 2019-04-05 腾讯科技(深圳)有限公司 在画板上绘图的方法及装置
CN109584341B (zh) * 2018-11-15 2022-11-25 腾讯科技(深圳)有限公司 在画板上绘图的方法及装置
CN109582429A (zh) * 2018-12-07 2019-04-05 上海航天电子通讯设备研究所 一种基于qt平台的圆形p显空情显示方法及装置
CN112204619A (zh) * 2019-04-23 2021-01-08 华为技术有限公司 处理图层的方法和装置
CN110471658A (zh) * 2019-07-10 2019-11-19 成都摹客科技有限公司 一种图层的选择方法、系统及计算机存储介质
CN116110072A (zh) * 2023-04-12 2023-05-12 江西少科智能建造科技有限公司 一种cad图纸解析方法及系统
CN116110072B (zh) * 2023-04-12 2023-08-15 江西少科智能建造科技有限公司 一种cad图纸解析方法及系统

Also Published As

Publication number Publication date
CN106815029B (zh) 2019-10-22

Similar Documents

Publication Publication Date Title
CN106815029A (zh) 一种使用Qt进行二维图层的绘制及事件处理方法
US9110574B2 (en) Augmented I/O for limited form factor user-interfaces
WO2019109485A1 (zh) 基于eCharts工具的图表制作方法、装置、设备及介质
US8952991B1 (en) Selective zoom response behavior in computing systems
US5564004A (en) Method and system for facilitating the selection of icons
CN105988860B (zh) 执行应用程序的方法及移动装置
US10627980B2 (en) Organization mode support mechanisms
US20060085758A1 (en) Desktop alert management
DE112013002412T5 (de) Vorrichtung, Verfahren und grafische Benutzeroberfläche zum Bereitstellen von Rückmeldung für das Wechseln von Aktivierungszuständen eines Benutzerschnittstellenobjekts
JPH10508403A (ja) 表示的グラフの操作によるデータ変更用の方法および装置
CN103577030B (zh) 浏览器窗口界面展现方法及系统
DE102013218379A1 (de) Erkennen und Verarbeiten einer unbeabsichtigten Berührung eines Touchscreens
CN103176712B (zh) 一种图像放大显示方法和装置
CN112947923B (zh) 对象编辑方法、装置和电子设备
CN109725958A (zh) 对资源管理器管理的文件进行处理的方法及装置
WO2020233063A1 (zh) 智能化路径规划方法、装置及计算机可读存储介质
CN108509599A (zh) 一种数据模型的创建方法及装置
CN112785714A (zh) 点云实例标注方法及装置、电子设备和介质
CN107391914B (zh) 一种参数显示方法、装置及设备
CN112148169B (zh) 标识显示控制方法、装置及电子设备
CN106445337A (zh) 聚光灯效果的实现方法和装置
JP2000089886A (ja) 仮想多面体を用いたデスクトップ管理システム及び方法
CN109241727B (zh) 权限设置方法及装置
CN109189537A (zh) 页面信息的动态显示方法、计算设备及计算机存储介质
CN108323199A (zh) 一种用户界面的显示方法、装置及用户界面

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant