CN112947805A - 一种图标排序方法及装置 - Google Patents
一种图标排序方法及装置 Download PDFInfo
- Publication number
- CN112947805A CN112947805A CN201911266551.1A CN201911266551A CN112947805A CN 112947805 A CN112947805 A CN 112947805A CN 201911266551 A CN201911266551 A CN 201911266551A CN 112947805 A CN112947805 A CN 112947805A
- Authority
- CN
- China
- Prior art keywords
- coordinate
- window control
- interface
- interval
- icon
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0481—Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
- G06F3/04817—Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance using icons
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0484—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
- G06F3/0486—Drag-and-drop
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
本发明提供一种图标排序方法及装置,该方法为监听利用鼠标对基于Pyqt技术栈绘制的界面上的第一图标进行拖拽操作时生成的新线程,获取鼠标的当前坐标,基于Pyqt技术栈绘制的界面上包括多个图标,图标内预先设置有窗口控件,比较当前坐标与预存储的窗口控件的坐标区间,若当前坐标处于任一窗口控件的坐标区间内,将窗口控件的坐标区间对应的第二图标的位置作为第一图标的新位置,对界面上的所有图标进行重新排序。本方案中,通过比较当前坐标与预存储的窗口控件的坐标区间,确定当前坐标处于窗口控件的坐标区间时,将当前坐标作为第一图标的位置,基于此重新对界面上的图标进行排序,实现在基于Pyqt技术栈绘制的界面进行图标排序的目的。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种图标排序方法及装置。
背景技术
目前,Python语言应用越来越广泛,在各类的应用场景中都使用到Python语言。例如:在界面程序的开发应用场景中,基于Pyqt技术栈绘制的界面。但是,基于Pyqt技术栈绘制的界面中不能实现图标拖拽排序的目的。
例如:Pyqt技术栈绘制的界面中存在多个图标,每个图标只能固定在该界面中的某一固定位置,用户不能按照自身的期望对该界面中的各个图标进行拖拽移动并排序。
发明内容
有鉴于此,本发明实施例提供一种图标排序方法及装置,用于解决基于Pyqt技术栈绘制的界面的图标,无法拖拽排序的问题。
为实现上述目的,本发明实施例提供如下技术方案:
本发明实施例第一方面提供了一种图标排序方法,所述方法包括:
监听拖拽事件发生时生成的新线程,获取拖拽事件发生后鼠标的当前坐标,所述拖拽事件指利用所述鼠标对基于Pyqt技术栈绘制的界面上的第一图标进行拖拽操作,所述基于Pyqt技术栈绘制的界面上包括多个图标,所述图标内预先设置有窗口控件;
比较所述当前坐标与预存储的窗口控件的坐标区间;
若所述当前坐标处于任一所述窗口控件的坐标区间内,将所述窗口控件的坐标区间对应的第二图标的位置作为所述第一图标的新位置,对所述界面上的所有图标进行重新排序。
优选的,所述基于Pyqt技术栈绘制界面的过程,包括:
生成以网格布局的界面,每一网格内设置一种类型的模块,所述模块对应一图标;
在渲染所述界面时,在每一所述模块中插入窗口控件,并存储所述窗口控件的坐标区间;
当渲染结束后,在所述界面上显示所述模块对应的图标。
优选的,所述比较所述当前坐标与预存储的窗口控件的坐标区间,包括:
获取预存储的窗口控件的坐标区间,所述坐标区间由所述窗口控件的左上坐标点、右上坐标点、左下坐标点和右下坐标点四个方向的坐标点构成;
针对每一预存储的窗口控件的坐标区间,以任一方向上的坐标点为基准点,计算所述当前坐标的横坐标和纵坐标是否处于所述预存储的窗口控件的坐标区间内;
若所述当前坐标的横坐标和纵坐标均处于所述预存储的窗口控件的所述坐标区间内,确定所述当前坐标处于所述窗口控件的坐标区间内。
优选的,所述针对每一预存储的窗口控件的坐标区间,以任一方向上的坐标点为基准点,计算所述当前坐标是否处于所述预存储的窗口控件的所述坐标区间内,包括:
针对每一预存储的窗口控件的坐标区间,以左上坐标点为基准点,计算所述当前坐标点的横坐标是否位于所述左上坐标点的横坐标和所述右上坐标点的横坐标之间,计算所述当前坐标点的纵坐标是否位于所述左上坐标点的纵坐标和所述左下坐标点的纵坐标之间。
优选的,还包括:
获取所述界面上所有图标重新排序后所对应的窗口控件的坐标区间,更新所述界面。
本发明实施例第二方面提供了一种图标排序装置,所述装置包括:
监听模块,用于监听拖拽事件发生时生成的新线程,获取拖拽事件发生后鼠标的当前坐标,所述拖拽事件指利用所述鼠标对基于Pyqt技术栈绘制的界面上的第一图标进行拖拽操作,所述基于Pyqt技术栈绘制的界面上包括多个图标,所述图标内预先设置有窗口控件;
比较模块,用于比较所述当前坐标与预存储的窗口控件的坐标区间;
排序模块,用于若所述当前坐标处于任一所述窗口控件的坐标区间内,将所述窗口控件的坐标区间对应的第二图标的位置作为所述第一图标的新位置,对所述界面上的所有图标进行重新排序。
优选的,还包括:
初始化模块,用于生成以网格布局的界面,每一网格内设置一种类型的模块,所述模块对应一图标,在渲染所述界面时,在每一所述模块中插入窗口控件,并记录所述窗口控件的坐标区间,当渲染结束后,在所述界面上显示所述模块对应的图标。
优选的,所述比较模块,包括:
获取单元,用于获取预存储的窗口控件的坐标区间,所述坐标区间由所述窗口控件的左上坐标点、右上坐标点、左下坐标点和右下坐标点四个方向的坐标点构成;
计算单元,用于针对每一预存储的窗口控件的坐标区间,以任一方向上的坐标点为基准点,计算所述当前坐标的横坐标和纵坐标是否处于所述预存储的窗口控件的坐标区间内,若所述当前坐标的横坐标和纵坐标均处于所述预存储的窗口控件的所述坐标区间内,确定所述当前坐标处于所述窗口控件的坐标区间内。
优选的,所述计算所述当前坐标的横坐标和纵坐标是否处于所述预存储的窗口控件的坐标区间内的计算单元,具体用于针对每一预存储的窗口控件的坐标区间,以左上坐标点为基准点,计算所述当前坐标点的横坐标是否位于所述左上坐标点的横坐标和所述右上坐标点的横坐标之间,计算所述当前坐标点的纵坐标是否位于所述左上坐标点的纵坐标和所述左下坐标点的纵坐标之间。
优选的,还包括:
更新模块,用于获取所述界面上所有图标重新排序后所对应的窗口控件的坐标区间,更新所述界面。
与现有技术相比,本发明提供的上述技术方案具有如下优点:
监听利用鼠标对基于Pyqt技术栈绘制的界面上的第一图标进行拖拽操作时生成的新线程,获取鼠标的当前坐标,基于Pyqt技术栈绘制的界面上包括多个图标,图标内预先设置有窗口控件,比较当前坐标与预存储的窗口控件的坐标区间,若当前坐标处于任一窗口控件的坐标区间内,将窗口控件的坐标区间对应的第二图标的位置作为第一图标的新位置,对界面上的所有图标进行重新排序。本方案中,通过比较当前坐标与预存储的窗口控件的坐标区间,确定当前坐标处于窗口控件的坐标区间时,将当前坐标作为第一图标的位置,基于此重新对界面上的图标进行排序,实现在基于Pyqt技术栈绘制的界面进行图标排序的目的。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例提供的一种基于Pyqt技术栈绘制界面的流程图;
图2为本发明实施例提供的一种基于Pyqt技术栈绘制界面完成后,生成的界面示意图;
图3为本发明实施例提供的一种图标排序方法的流程图;
图4为本发明实施例提供的一种比较当前坐标与预存储的窗口控件的坐标区间的流程图;
图5为本发明实施例提供的一种当前坐标处于某一窗口控件的坐标区间内的示意图;
图6为本发明实施例提供的一种计算当前坐标的横坐标和纵坐标是否处于预存储的窗口控件的坐标区间内的流程图;
图7为本发明实施例提供的一种所有图标进行重新排序后得到的界面示意图;
图8为本发明实施例提供的一种图标排序装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本申请中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
由背景技术可知,在现有技术中,在各类的应用场景中都使用到Python语言。例如:在界面程序的开发应用场景中,基于Pyqt技术栈绘制的界面。但是,基于Pyqt技术栈绘制的界面中不能实现图标拖拽排序的目的。
因此,本发明提供了一种图标排序方法及装置,用于通过比较当前坐标与预存储的窗口控件的坐标区间,确定当前坐标处于窗口控件的坐标区间时,将当前坐标作为第一图标的位置,解决了基于Pyqt技术栈绘制的界面的图标,无法拖拽排序的问题。
本发明的目的是为了解决基于Pyqt技术栈绘制的界面的图标,无法拖拽排序的问题。如图1所示,为本发明实施例提供的一种基于Pyqt技术栈绘制界面的具体实现的流程图,包括:
S101:生成以网格布局的界面,每一网格内设置一种类型的模块。
在S101中,网格布局是Pyqt技术栈绘制的界面时的一种布局方式,具体的布局方式还包括:水平布局、垂直布局、表格布局,其中,每个模块对应一个图标。
在具体实现S101的过程中,Pyqt技术栈绘制的界面是以网格布局的方式生成的,且每个网格中设置一种类型的模块,该模块中包括预先设置的窗口控件,该模块的其余元素都包含在该窗口控件中,该窗口控件包括但不限于是Qwidget控件。
S102:在渲染界面时,在每一模块中插入窗口控件,并存储窗口控件的坐标区间。
在具体实现S102的过程中,在渲染界面的过程中,同时在每一模块中插入同一窗口控件,对该窗口控件的坐标区间进行存储,以便鼠标拖拽图标移动后的当前坐标,与窗口控件的坐标区间进行比较。
S103:当渲染结束后,在界面上显示模块对应的图标。
在具体实现S103的过程中,当渲染界面结束后,界面上显示模块对应的图标。
本发明实施例在基于图1的方法基础上,提供了一种基于Pyqt技术栈绘制界面完成后,生成的界面示意图,如图2所示。
图2中,该界面中的图标按照从左到右的顺序依次为“人资”、“财务”、“SAP商旅报销”和“工程链条”。
基于上述本发明实施例采用图1的方法生成的界面,对其中的图标进行拖拽排序时,如图3所示,为本发明实施例提供的一种图标排序方法的流程图,该方法包括以下步骤:
S301:监听拖拽事件发生时生成的新线程,获取拖拽事件发生后鼠标的当前坐标。
在S301中,拖拽事件指利用鼠标对基于Pyqt技术栈绘制的界面上的第一图标进行拖拽操作,其中,基于Pyqt技术栈绘制的界面上包括多个图标,图标内预先设置有窗口控件,每个窗口控件都有对应的坐标区间。
在具体实现S301的过程中,当鼠标拖动基于Pyqt技术栈绘制的界面上的某一个图标时会生成一个对应拖拽事件的线程。通过该线程能够确定鼠标拖动图标在界面上进行移动的动作,以及最后停止在界面上的位置,并确定该位置在界面上的坐标,也就是当前坐标。
S302:比较当前坐标与预存储的窗口控件的坐标区间,确定当前坐标是否处于任一窗口控件的坐标区间内,若是,执行S303,若否,根据当前坐标,生成新的图标顺序,并将该图标顺序进行存储。
在具体实现S302的过程中,将该当前坐标与Pyqt技术栈绘制的界面中预先设置的若干个窗口控件的坐标区间进行比较。
可选的,比较当前坐标与预存储的窗口控件的坐标区间的具体实现过程,如图4所示,主要包括:
S401:获取预存储的窗口控件的坐标区间。
在S401中,坐标区间由窗口控件的左上坐标点、右上坐标点、左下坐标点和右下坐标点四个方向的坐标点构成。如图5所示,为当前坐标处于某一窗口控件的坐标区间内的示意图。
图5中,该窗口控件的四个方向的坐标点,分别为左上坐标点(800,900)、右上坐标点(900,900)、左下坐标点(800,1000)和右下坐标点(900,1000),该窗口控件的坐标区间内的坐标点为鼠标拖拽图标后的当前坐标(825,930)。
S402:针对每一预存储的窗口控件的坐标区间,以任一方向上的坐标点为基准点,计算当前坐标的横坐标和纵坐标是否处于预存储的窗口控件的坐标区间内,若是,执行S403,若否,执行S404。
在具体实现S402的过程中,通过窗口控件的左上坐标点、右上坐标点、左下坐标点和右下坐标点四个方向中的任意坐标点作为基准点,计算当前坐标的横坐标和纵坐标是否处于预存储的窗口控件的坐标区间内。
S403:确定当前坐标处于窗口控件的坐标区间内。
S404:确定当前坐标未处于窗口控件的坐标区间内。
S303:将窗口控件的坐标区间对应的第二图标的位置作为第一图标的新位置,对界面上的所有图标进行重新排序。
在具体实现S303的过程中,当发生拖拽事件后,拖拽后的图标处于另一个窗口控件的坐标区间内,则将该窗口控件的坐标区间对应的第二图标的位置作为第一图标的新位置,并对界面上的所有图标进行重新排序,使得所有图标按照重新排序后的顺序存在该界面中。
可选的,在拖拽事件结束之后,获取界面上所有图标重新排序后所对应的窗口控件的坐标区间,更新界面,并存储界面上所有图标的坐标以及顺序。
基于上述本发明实施例公开的图标排序方法可知,监听利用鼠标对基于Pyqt技术栈绘制的界面上的第一图标进行拖拽操作时生成的新线程,获取鼠标的当前坐标,基于Pyqt技术栈绘制的界面上包括多个图标,图标内预先设置有窗口控件,比较当前坐标与预存储的窗口控件的坐标区间,若当前坐标处于任一窗口控件的坐标区间内,将窗口控件的坐标区间对应的第二图标的位置作为第一图标的新位置,对界面上的所有图标进行重新排序。本方案中,通过比较当前坐标与预存储的窗口控件的坐标区间,确定当前坐标处于窗口控件的坐标区间时,将当前坐标作为第一图标的位置,基于此重新对界面上的图标进行排序,实现在基于Pyqt技术栈绘制的界面进行图标排序的目的。
可选的,以左上坐标点为基准点,计算当前坐标的横坐标和纵坐标是否处于预存储的窗口控件的坐标区间内的具体实现过程,如图6所示,主要包括:
S601:针对每一预存储的窗口控件的坐标区间,以左上坐标点为基准点,计算当前坐标的横坐标是否位于左上坐标点的横坐标和右上坐标点的横坐标之间,若是,执行S602,若否,根据当前坐标,生成新的图标顺序,并将该图标顺序进行存储。
在具体实现S601的过程中,以每一窗口控件的左上坐标点为基准点,若当前坐标的横坐标大于窗口控件的左上坐标点的横坐标,且小于该窗口控件的右上坐标点,则确定当前坐标点的横坐标位于左上坐标点的横坐标和右上坐标点的横坐标之间。相反,则确定当前坐标点的横坐标未位于左上坐标点的横坐标和右上坐标点的横坐标之间。
例如:由图5可知,以该窗口控件的左上坐标点(800,900)为基准点,当前坐标(825,930)的横坐标825大于该窗口控件的左上坐标点的横坐标800,且小于该窗口控件的右上坐标点的横坐标900,则确定当前坐标点的横坐标位于左上坐标点的横坐标和右上坐标点的横坐标之间。
S602:计算当前坐标点的纵坐标是否位于左上坐标点的纵坐标和左下坐标点的纵坐标之间,若是,确定当前坐标处于该窗口控件的坐标区间,若否,根据当前坐标,生成新的图标顺序,并将该图标顺序进行存储。
在具体实现S602的过程中,若当前坐标点的纵坐标大于窗口控件的左上坐标点的纵坐标,且小于该窗口控件的左下坐标点的纵坐标,则确定当前坐标点的纵坐标位于左上坐标点的纵坐标和左下坐标点的纵坐标之间。相反,确定当前坐标点的纵坐标未位于左上坐标点的纵坐标和左下坐标点的纵坐标之间。
例如:由图5可知,当前坐标(825,930)的纵坐标930大于该窗口控件的左上坐标点的纵坐标900,且小于该窗口控件的左下坐标点的纵坐标1000,则确定当前坐标点的纵坐标位于左上坐标点的纵坐标和左下坐标点的纵坐标之间。
需要说明的是,确定当前坐标处于窗口控件的坐标区间后,将窗口控件的坐标区间对应的第二图标的位置作为第一图标的新位置,对界面上的所有图标进行重新排序。
具体的,如图7所示,示出了对所有图标进行重新排序后得到的界面示意图。
图7中,通过鼠标拖拽“工程链条”对应的图标到“财务”所在图标位置,在拖拽事件发生后,如果新坐标坐落在“财务”对应的窗口控件的坐标区间,则认为将“工程链条”拖拽至第二个位置,形成“人资”、“工程链条”、“财务”、“SAP商旅报销”的新顺序,并将该顺序按标准格式记录在文件中,然后根据新顺序重新刷新界面。
需要说明的是,包括但不限是以窗口控件的左上坐标点为基准点,具体可根据实际情况,设定别的坐标点为基准点。
基于上述本发明实施例公开的图标排序方法可知,监听利用鼠标对基于Pyqt技术栈绘制的界面上的第一图标进行拖拽操作时生成的新线程,获取鼠标的当前坐标,基于Pyqt技术栈绘制的界面上包括多个图标,图标内预先设置有窗口控件,比较当前坐标与预存储的窗口控件的坐标区间,若当前坐标处于任一窗口控件的坐标区间内,将窗口控件的坐标区间对应的第二图标的位置作为第一图标的新位置,对界面上的所有图标进行重新排序。本方案中,通过比较当前坐标与预存储的窗口控件的坐标区间,确定当前坐标处于窗口控件的坐标区间时,将当前坐标作为第一图标的位置,基于此重新对界面上的图标进行排序,实现在基于Pyqt技术栈绘制的界面进行图标排序的目的。
基于上述本发明实施例公开的图标排序方法,本发明实施例还对应公开一种图标排序装置,如图8所示,为本发明实施例提供的一种图标排序装置的结构示意图,主要包括:监听模块80、比较模块81和排序模块82。
监听模块80,用于监听拖拽事件发生时生成的新线程,获取拖拽事件发生后鼠标的当前坐标,拖拽事件指利用鼠标对基于Pyqt技术栈绘制的界面上的第一图标进行拖拽操作,基于Pyqt技术栈绘制的界面上包括多个图标,图标内预先设置有窗口控件。
比较模块81,用于比较当前坐标与预存储的窗口控件的坐标区间。
排序模块82,用于若当前坐标处于任一窗口控件的坐标区间内,将窗口控件的坐标区间对应的第二图标的位置作为第一图标的新位置,对界面上的所有图标进行重新排序。
在本发明实施例中比较模块81的一种可选结构为:比较模块81包括获取单元和计算单元。
获取单元,用于获取预存储的窗口控件的坐标区间,坐标区间由窗口控件的左上坐标点、右上坐标点、左下坐标点和右下坐标点四个方向的坐标点构成。
计算单元,用于针对每一预存储的窗口控件的坐标区间,以任一方向上的坐标点为基准点,计算当前坐标的横坐标和纵坐标是否处于预存储的窗口控件的坐标区间内,若当前坐标的横坐标和纵坐标均处于预存储的窗口控件的坐标区间内,确定当前坐标处于窗口控件的坐标区间内。
计算单元,具体用于针对每一预存储的窗口控件的坐标区间,以左上坐标点为基准点,计算当前坐标点的横坐标是否位于左上坐标点的横坐标和右上坐标点的横坐标之间,计算当前坐标点的纵坐标是否位于左上坐标点的纵坐标和左下坐标点的纵坐标之间。
基于上述本发明实施例公开的图标排序装置可知,监听利用鼠标对基于Pyqt技术栈绘制的界面上的第一图标进行拖拽操作时生成的新线程,获取鼠标的当前坐标,基于Pyqt技术栈绘制的界面上包括多个图标,图标内预先设置有窗口控件,比较当前坐标与预存储的窗口控件的坐标区间,若当前坐标处于任一窗口控件的坐标区间内,将窗口控件的坐标区间对应的第二图标的位置作为第一图标的新位置,对界面上的所有图标进行重新排序。本方案中,通过比较当前坐标与预存储的窗口控件的坐标区间,确定当前坐标处于窗口控件的坐标区间时,将当前坐标作为第一图标的位置,基于此重新对界面上的图标进行排序,实现在基于Pyqt技术栈绘制的界面进行图标排序的目的。
基于上述本发明实施例公开的图标排序装置,该图标排序装置还包括:初始化模块。
初始化模块,用于生成以网格布局的界面,每一网格内设置一种类型的模块,模块对应一图标,在渲染所述界面时,在每一模块中插入窗口控件,并记录窗口控件的坐标区间,当渲染结束后,在界面上显示模块对应的图标。
基于上述本发明实施例公开的图标排序装置,该图标排序装置还包括:更新模块。
更新模块,用于获取界面上所有图标重新排序后所对应的窗口控件的坐标区间,更新界面。
基于上述本发明实施例公开的图标排序装置可知,监听利用鼠标对基于Pyqt技术栈绘制的界面上的第一图标进行拖拽操作时生成的新线程,获取鼠标的当前坐标,基于Pyqt技术栈绘制的界面上包括多个图标,图标内预先设置有窗口控件,比较当前坐标与预存储的窗口控件的坐标区间,若当前坐标处于任一窗口控件的坐标区间内,将窗口控件的坐标区间对应的第二图标的位置作为第一图标的新位置,对界面上的所有图标进行重新排序。本方案中,通过比较当前坐标与预存储的窗口控件的坐标区间,确定当前坐标处于窗口控件的坐标区间时,将当前坐标作为第一图标的位置,基于此重新对界面上的图标进行排序,实现在基于Pyqt技术栈绘制的界面进行图标排序的目的。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统或系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的系统及系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种图标排序方法,其特征在于,所述方法包括:
监听拖拽事件发生时生成的新线程,获取拖拽事件发生后鼠标的当前坐标,所述拖拽事件指利用所述鼠标对基于Pyqt技术栈绘制的界面上的第一图标进行拖拽操作,所述基于Pyqt技术栈绘制的界面上包括多个图标,所述图标内预先设置有窗口控件;
比较所述当前坐标与预存储的窗口控件的坐标区间;
若所述当前坐标处于任一所述窗口控件的坐标区间内,将所述窗口控件的坐标区间对应的第二图标的位置作为所述第一图标的新位置,对所述界面上的所有图标进行重新排序。
2.根据权利要求1所述的方法,其特征在于,所述基于Pyqt技术栈绘制界面的过程,包括:
生成以网格布局的界面,每一网格内设置一种类型的模块,所述模块对应一图标;
在渲染所述界面时,在每一所述模块中插入窗口控件,并存储所述窗口控件的坐标区间;
当渲染结束后,在所述界面上显示所述模块对应的图标。
3.根据权利要求1所述的方法,其特征在于,所述比较所述当前坐标与预存储的窗口控件的坐标区间,包括:
获取预存储的窗口控件的坐标区间,所述坐标区间由所述窗口控件的左上坐标点、右上坐标点、左下坐标点和右下坐标点四个方向的坐标点构成;
针对每一预存储的窗口控件的坐标区间,以任一方向上的坐标点为基准点,计算所述当前坐标的横坐标和纵坐标是否处于所述预存储的窗口控件的坐标区间内;
若所述当前坐标的横坐标和纵坐标均处于所述预存储的窗口控件的所述坐标区间内,确定所述当前坐标处于所述窗口控件的坐标区间内。
4.根据权利要求3所述的方法,其特征在于,所述针对每一预存储的窗口控件的坐标区间,以任一方向上的坐标点为基准点,计算所述当前坐标是否处于所述预存储的窗口控件的所述坐标区间内,包括:
针对每一预存储的窗口控件的坐标区间,以左上坐标点为基准点,计算所述当前坐标点的横坐标是否位于所述左上坐标点的横坐标和所述右上坐标点的横坐标之间,计算所述当前坐标点的纵坐标是否位于所述左上坐标点的纵坐标和所述左下坐标点的纵坐标之间。
5.根据权利要求1至4中任一项所述的方法,其特征在于,还包括:
获取所述界面上所有图标重新排序后所对应的窗口控件的坐标区间,更新所述界面。
6.一种图标排序装置,其特征在于,所述装置包括:
监听模块,用于监听拖拽事件发生时生成的新线程,获取拖拽事件发生后鼠标的当前坐标,所述拖拽事件指利用所述鼠标对基于Pyqt技术栈绘制的界面上的第一图标进行拖拽操作,所述基于Pyqt技术栈绘制的界面上包括多个图标,所述图标内预先设置有窗口控件;
比较模块,用于比较所述当前坐标与预存储的窗口控件的坐标区间;
排序模块,用于若所述当前坐标处于任一所述窗口控件的坐标区间内,将所述窗口控件的坐标区间对应的第二图标的位置作为所述第一图标的新位置,对所述界面上的所有图标进行重新排序。
7.根据权利要求6所述的装置,其特征在于,还包括:
初始化模块,用于生成以网格布局的界面,每一网格内设置一种类型的模块,所述模块对应一图标,在渲染所述界面时,在每一所述模块中插入窗口控件,并记录所述窗口控件的坐标区间,当渲染结束后,在所述界面上显示所述模块对应的图标。
8.根据权利要求6所述的装置,其特征在于,所述比较模块,包括:
获取单元,用于获取预存储的窗口控件的坐标区间,所述坐标区间由所述窗口控件的左上坐标点、右上坐标点、左下坐标点和右下坐标点四个方向的坐标点构成;
计算单元,用于针对每一预存储的窗口控件的坐标区间,以任一方向上的坐标点为基准点,计算所述当前坐标的横坐标和纵坐标是否处于所述预存储的窗口控件的坐标区间内,若所述当前坐标的横坐标和纵坐标均处于所述预存储的窗口控件的所述坐标区间内,确定所述当前坐标处于所述窗口控件的坐标区间内。
9.根据权利要求8所述装置,其特征在于,所述计算所述当前坐标的横坐标和纵坐标是否处于所述预存储的窗口控件的坐标区间内的计算单元,具体用于针对每一预存储的窗口控件的坐标区间,以左上坐标点为基准点,计算所述当前坐标点的横坐标是否位于所述左上坐标点的横坐标和所述右上坐标点的横坐标之间,计算所述当前坐标点的纵坐标是否位于所述左上坐标点的纵坐标和所述左下坐标点的纵坐标之间。
10.根据权利要求6至9中任一项所述的装置,其特征在于,还包括:
更新模块,用于获取所述界面上所有图标重新排序后所对应的窗口控件的坐标区间,更新所述界面。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911266551.1A CN112947805A (zh) | 2019-12-11 | 2019-12-11 | 一种图标排序方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911266551.1A CN112947805A (zh) | 2019-12-11 | 2019-12-11 | 一种图标排序方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112947805A true CN112947805A (zh) | 2021-06-11 |
Family
ID=76226438
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911266551.1A Pending CN112947805A (zh) | 2019-12-11 | 2019-12-11 | 一种图标排序方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112947805A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114528807A (zh) * | 2022-01-26 | 2022-05-24 | 北京飞书科技有限公司 | 信息处理方法、装置、终端和存储介质 |
CN115657920A (zh) * | 2022-10-17 | 2023-01-31 | 中科世通亨奇(北京)科技有限公司 | 一种拖拽式的个性化的自定工作台组件控制方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090113330A1 (en) * | 2007-10-30 | 2009-04-30 | John Michael Garrison | Method For Predictive Drag and Drop Operation To Improve Accessibility |
CN103488379A (zh) * | 2013-09-16 | 2014-01-01 | 北京奇虎科技有限公司 | 一种智能终端的桌面元素调整方法和装置 |
CN106354366A (zh) * | 2016-08-26 | 2017-01-25 | 乐视控股(北京)有限公司 | 桌面图标排列处理方法及装置 |
-
2019
- 2019-12-11 CN CN201911266551.1A patent/CN112947805A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090113330A1 (en) * | 2007-10-30 | 2009-04-30 | John Michael Garrison | Method For Predictive Drag and Drop Operation To Improve Accessibility |
CN103488379A (zh) * | 2013-09-16 | 2014-01-01 | 北京奇虎科技有限公司 | 一种智能终端的桌面元素调整方法和装置 |
CN106354366A (zh) * | 2016-08-26 | 2017-01-25 | 乐视控股(北京)有限公司 | 桌面图标排列处理方法及装置 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114528807A (zh) * | 2022-01-26 | 2022-05-24 | 北京飞书科技有限公司 | 信息处理方法、装置、终端和存储介质 |
CN115657920A (zh) * | 2022-10-17 | 2023-01-31 | 中科世通亨奇(北京)科技有限公司 | 一种拖拽式的个性化的自定工作台组件控制方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9542070B2 (en) | Method and apparatus for providing an interactive user interface | |
US9459786B2 (en) | Systems and methods for sharing a user interface element based on user gestures | |
US10324613B2 (en) | Method and electronic device for moving icon to page | |
WO2012075565A1 (en) | Annotation method and system for conferencing | |
WO2016145832A1 (zh) | 终端的操作方法及装置 | |
CN107765976B (zh) | 一种消息推送方法、终端及系统 | |
CN112783394A (zh) | 列表页面展示方法和装置 | |
CN106648281B (zh) | 一种截图方法及装置 | |
CN106354378B (zh) | 一种快速选中多个目标的方法和装置 | |
CN105843467A (zh) | 一种图标展示方法及装置 | |
CN104063125A (zh) | 一种桌面图标管理方法和装置 | |
CN104571916A (zh) | 一种执行终端操作信息的方法及装置 | |
CN112947805A (zh) | 一种图标排序方法及装置 | |
CN102880382B (zh) | 一种界面展示系统、方法和设备 | |
CN104025001A (zh) | 用于用户界面的可调整大小部分的调整大小控制柄激活 | |
CN109189301A (zh) | 一种屏幕截图的方法及装置 | |
CN107391914B (zh) | 一种参数显示方法、装置及设备 | |
CN109388737B (zh) | 一种内容项的曝光数据的发送方法、装置及存储介质 | |
CN103365526A (zh) | 控件排布方法和装置 | |
WO2017113713A1 (zh) | 显示界面调整方法及装置 | |
CN108089902B (zh) | 分屏显示状态的检测方法、计算设备及计算机存储介质 | |
CN110489023A (zh) | 多窗口显示的实现方法、装置、设备、介质和系统 | |
CN103677518A (zh) | 一种移动终端上的触摸消息响应方法和装置 | |
CN111046207A (zh) | 互动图像显示方法、装置、设备和存储介质 | |
CN105404439B (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 | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20210611 |
|
WD01 | Invention patent application deemed withdrawn after publication |