窗口控制方法、装置、电子设备和计算机可读介质与流程

文档序号:21199893发布日期:2020-06-23 19:11阅读:173来源:国知局
窗口控制方法、装置、电子设备和计算机可读介质与流程

本申请实施例涉及计算机技术领域,具体涉及窗口控制方法、装置、电子设备和计算机可读介质。



背景技术:

随着计算机技术的发展,越来越多的客户端可支持多个窗口的同时呈现。例如,用于管理和控制电视墙的电视墙客户端可以呈现多个窗口,每一个窗口可以与电视墙(也可称为监视大屏,例如全彩led(lightemittingdiode,lightemittingdiode)显示屏)中的一个监控窗口相对应。用户可以通过在电视墙客户端中移动窗口的位置,来调整电视墙中相应的监控窗口的位置。例如,若需要使电视墙中的某个监控窗口(如监控窗口a)与其他监控窗口相连,用户可以在电视墙客户端中将监控窗口a对应的窗口移动至其他窗口边缘。

然而,由于电子设备的显示屏幕的尺寸有限,通常肉眼所见某个窗口被拖动至另一窗口的边界,但实际上两窗口并未紧密吸附。此时,由于电子设备与电视墙分辨率的差异,将导致电视墙中的监控窗口出现较大缝隙或蓝边。现有的方式不支持显示界面中存在多个窗口时的窗口自动吸附操作,由此,仅通过人工拖动窗口,无法对窗口进行精确控制。



技术实现要素:

本申请实施例提出了窗口控制方法、装置、电子设备和计算机可读介质,以解决现有技术中无法对窗口进行精确控制技术问题。

第一方面,本申请实施例提供了一种窗口控制方法,该方法包括:将目标界面中产生位置变化的窗口作为目标窗口,检测目标窗口的各边界在目标界面中的位置,其中,目标窗口的边界包括左边界、右边界、上边界和下边界;将左边界所在直线与右边界所在直线之间的区域作为第一区域,将上边界所在直线与下边界所在直线之间的区域作为第二区域,从目标界面的其余窗口中,分别选取位于第一区域以外的第一候选窗口和位于第二区域以外的第二候选窗口;基于目标窗口与所选取的各候选窗口的位置关系,确定所选取的候选窗口中的待吸附窗口;将目标窗口吸附于待吸附窗口。

第二方面,本申请实施例提供了一种窗口控制装置,该装置包括:检测单元,被配置成将目标界面中产生位置变化的窗口作为目标窗口,检测目标窗口的各边界在目标界面中的位置,其中,目标窗口的边界包括左边界、右边界、上边界和下边界;选取单元,被配置成将左边界所在直线与右边界所在直线之间的区域作为第一区域,将上边界所在直线与下边界所在直线之间的区域作为第二区域,从目标界面的其余窗口中,分别选取位于第一区域以外的第一候选窗口和位于第二区域以外的第二候选窗口;确定单元,被配置成基于目标窗口与所选取的各候选窗口的位置关系,确定所选取的候选窗口中的待吸附窗口;吸附单元,被配置成将目标窗口吸附于待吸附窗口。

第三方面,本申请实施例提供了一种电子设备,包括:一个或多个处理器;存储装置,其上存储有一个或多个程序,当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器实现上述第一方面中任一实施例所描述的方法。

第四方面,本申请实施例提供了一种计算机可读介质,其上存储有计算机程序,该程序被处理器执行时实现如上述第一方面中任一实施例所描述的方法。

本申请实施例提供的窗口控制方法、装置、电子设备和计算机可读介质,通过检测目标界面中产生位置变化的目标窗口的各边界的位置,而后选取出第一候选窗口和第二候选窗口,之后基于目标窗口与所选取的各候选窗口的位置关系,确定所选取的候选窗口中的待吸附窗口,最后将目标窗口吸附于待吸附窗口。从而,支持了在目标界面中存在多个窗口时的窗口吸附操作,可实现将目标窗口吸附于待吸附窗口的边界,提高了窗口控制的精确性。

附图说明

通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:

图1是根据本申请的窗口控制方法的一个实施例的流程图;

图2是根据本申请的目标界面中的目标窗口的示意图;

图3a是根据本申请的第一区域的示意图;

图3b是根据本申请的第二区域的示意图;

图4是根据本申请的窗口控制方法的又一个实施例的流程图;

图5是根据本申请的窗口控制装置的一个实施例的结构示意图;

图6是适于用来实现本申请实施例的电子设备的计算机系统的结构示意图。

具体实施方式

下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。

需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。

请参考图1,其示出了根据本申请的窗口控制方法的一个实施例的流程100。该窗口控制方法,包括以下步骤:

步骤101,将目标界面中产生位置变化的窗口作为目标窗口,检测目标窗口的各边界在目标界面中的位置。

在本实施例中,窗口控制方法的执行主体可以是台式计算机、膝上便携式计算机、平板电脑等电子设备,也可以是运行于电子设备中的客户端等。所述电子设备可以具有显示屏幕,显示屏幕中可以呈现有目标界面。其中目标界面可以是包含多个窗口的界面(如客户端界面)。上述目标界面可以位于显示屏幕的局部,也可以以显示屏幕为边界,此处不作限定。

作为示例,在一种场景中,上述目标界面可以是电视墙客户端中的窗口控制界面。该界面中可以呈现有多个窗口。每一个窗口可以与电视墙(也可称为监视大屏)中的一个监控窗口相对应。用户可以通过在电视墙客户端中移动窗口的位置,来调整电视墙中相应的监控窗口的位置。当用户通过电视墙客户端移动窗口后,电视墙客户端可以该窗口的坐标下发至解码器,从而调整电视墙中相应的监控窗口的位置。实践中,上述电视墙可以包含多个监控窗口,上述电视墙可以支持在多个监控窗口中同时显示不同监视点的实时监控画面。

在本实施例中,当某一个窗口在目标界面中进行显示时,该窗口则占据了一个显示区域。对于每一个窗口,该窗口的显示区域是指该窗口所包含的各个像素点在目标界面中的坐标所组成的坐标范围。上述执行主体可以记录目标界面中所显示的各窗口的显示区域。当某个窗口的显示区域发生变化时,则可以判定为该窗口发生位置变化。实践中,当用户对窗口进行拖动、缩放等操作时,即可使窗口发生位置变化。

上述执行主体可以将目标界面中产生位置变化的窗口作为目标窗口,并检测上述目标窗口的各边界在目标界面中的位置。其中,目标窗口的边界可以包括左边界、右边界、上边界和下边界。实践中,目标窗口的各边界的位置,可通过目标窗口的顶点坐标确定。

请参见图2,图2位目标界面中的目标窗口的一个示意图。如图2所示,可以将目标界面的左上角的顶点作为原点(0,0),以水平向右的方向作为横轴(x轴)方向,以竖直向下的方向作为纵轴(y轴)方向,构建上述目标界面的直角坐标系。

如图2所示,可以将产生位置变化后的目标窗口左上角顶点坐标记为(x1,y1),将该目标窗口右下角顶点坐标记为(x2,y2)。此时,目标窗口的左边界所在直线即为经过点(x1,y1)且垂直于x轴的直线(记为直线x=x1)。目标窗口的右边界所在直线即为经过点(x2,y2)且垂直于x轴的直线(即为直线x=x2)。目标窗口的上边界所在直线即为经过点(x1,y1)且垂直于y轴的直线(记为直线y=y1)。目标窗口的下边界所在直线为经过点(x2,y2)且垂直于y轴的直线(记为直线y=y2)。从而,通过获取目标窗口的顶点坐标,即可确定出目标窗口的上边界、右边界、上边界和下边界的位置。

步骤102,将左边界所在直线与右边界所在直线之间的区域作为第一区域,将上边界所在直线与下边界所在直线之间的区域作为第二区域,从目标界面的其余窗口中,分别选取位于第一区域以外的第一候选窗口和位于第二区域以外的第二候选窗口。

在本实施例中,执行主体可以将位于目标界面中的、目标窗口的左边界所在直线与右边界所在直线之间的区域作为第一区域,将位于目标界面中的、目标窗口的上边界所在直线与下边界所在直线之间的区域作为第二区域。请进一步参考图3a和图3b。图3a为第一区域的示意图。在目标界面的范围内,目标窗口的左边界所在直线(即直线x=x1)与右边界所在直线(即直线x=x2)之间的第一区域如图3a中的阴影所示。图3b为第二区域的示意图。在目标界面的范围内,目标窗口的上边界所在直线(即直线y=y1)与下边界所在直线(即直线y=y2)之间的第二区域如图3b中的阴影所示。

在本实施例中,上述执行主体可以从目标界面的其余窗口(即目标界面中除目标窗口以外的窗口)中,分别选取位于第一区域以外的第一候选窗口和位于第二区域以外的第二候选窗口。此处,可以按照预设的规则进行选取候选窗口的选取。例如,将距离目标窗口最近的窗口作为第二候选窗口。

作为示例,如图3a和图3b所示,目标界面中除目标窗口外,还包含窗口a、窗口b和窗口c。由此,需要从窗口a、窗口b和窗口c中,选取分别选取位于第一区域以外的第一候选窗口和位于第二区域以外的第二候选窗口。

具体地,如图3a所示,目标界面中的窗口a位于第一区域以外,窗口b和窗口c均与第一区域存在重合部分。可以理解的是,由于仅存在窗口a可供选择,因而,可以将窗口a确定为第一候选窗口。如图3b所示,目标界面中的窗口b和c位于第二区域以外,窗口a与第二区域存在重合,因而,可以从窗口b和窗口c中选取一个窗口作为第二候选窗口。例如,可以选取距离目标窗口较近的窗口b作为第二候选窗口。

需要说明的是,在图3a和图3b中,窗口a的左上角顶点与窗口b的右下角顶点重合。实际上,窗口a与窗口b也可以不存在重合的点,图3a和图3b中的窗口a与窗口b的位置关系仅为一种示例,不作为对候选窗口的位置关系的限定。

步骤103,分别基于第二区域与第一候选窗口的位置关系以及第一区域与第二候选窗口的位置关系,确定各候选窗口是否为待吸附窗口。

在本实施例中,上述执行主体可以基于第二区域与第一候选窗口位置关系以及第一区域与第二候选窗口的位置关系,分别确定各候选窗口是否为待吸附窗口。

作为示例,若第二区域与第一候选窗口存在部分重合区域或第一候选窗口全部位于上述第二区域内部,则可以确定该第一候选窗口为待吸附窗口。在其他位置关系下,则第一候选窗口不为待吸附窗口。

同理,若第一区域与第二候选窗口存在部分重合区域或第二候选窗口全部位于上述第一区域内部,则可以确定该第二候选窗口为待吸附窗口。在其他位置关系下,则第二候选窗口不为待吸附窗口。

此时,若确定第一候选窗口为待吸附窗口,则可以将目标窗口横向移动以吸附至第一候选窗口的边界。若第二候选窗口为待吸附窗口,则可以将目标窗口纵向移动以吸附至第二候选窗口的边界。若第一候选窗口与第二候选窗口均为待吸附窗口,则可以首先将目标窗口横向移动以吸附至第一候选窗口的边界,而后,将目标窗口纵向移动以吸附至第二候选窗口的边界。

步骤104,将目标窗口吸附于所确定出的待吸附窗口。

在本实施例中,在确定出待吸附窗口后,上述执行主体即可将上述目标窗口吸附于上述待吸附窗口。实践中,可以将目标窗口进行移动,以使目标窗口吸附于各待吸附窗口的边界。此时,目标窗口与待吸附窗口存在一个重合的边界。

在一种场景中,第一候选窗口为待吸附窗口,第二候选窗口不为待吸附窗口。此时,可以将目标窗口进行横向移动(即在水平方向上移动),以使目标窗口吸附于第一候选窗口的边界。此处,当第一候选窗口位于第一区域的左侧(即位于目标窗口的左边界的左侧)时,可以使目标窗口水平向左移动,将目标窗口左边界吸附至第一候选窗口的右边界。当第一候选窗口位于第一区域的右侧(即位于目标窗口的右边界的右侧)时,可以使目标窗口水平向右移动,将目标窗口右边界吸附至第一候选窗口的左边界。

在另一种场景中,第一候选窗口不为待吸附窗口,第二候选窗口为待吸附窗口。此时,可以将目标窗口进行纵向移动(即在竖直方向上移动),以使目标窗口吸附于第二候选窗口的边界。此处,当第二候选窗口位于第二区域的上方(即位于上述目标窗口的上边界的上方)时,可以使目标窗口竖直向上移动,将目标窗口上边界吸附至第二候选窗口的下边界。当第二候选窗口位于第二区域的下方(即位于上述目标窗口的下边界的下方)时,可以使目标窗口竖直向下移动,将目标窗口下边界吸附至第二候选窗口的上边界。

在另一种场景中,第一候选窗和第二候选窗口均为待吸附窗口。此时,可以首先将目标窗口进行横向移动,使之吸附于第一候选窗口的边界;再将所目标窗口纵向移动,使之吸附于第二候选窗口的边界。或者,首先将所目标窗口纵向移动,使之吸附于第二候选窗口的边界;再将上述目标窗口进行横向移动,使之吸附于第一候选窗口的边界。

本申请的上述实施例提供的方法,通过检测目标界面中产生位置变化的目标窗口的各边界的位置,而后选取出第一候选窗口和第二候选窗口,之后基于上述目标窗口与所选取的各候选窗口的位置关系,确定所选取的候选窗口中的待吸附窗口,最后将上述目标窗口吸附于上述待吸附窗口。从而,支持了在目标界面中存在多个窗口时的窗口吸附操作,可实现将目标窗口吸附于待吸附窗口的边界,解决了人工移动窗口时的移动位置不精确的问题,从而提高了窗口控制的精确性。同时,对于电视墙客户端的多窗口场景,在电视墙客户端接入监视大屏(例如全彩led(lightemittingdiode,lightemittingdiode)显示屏)的情况下,由于可实现窗口的自动吸附,因而,避免了监视大屏中的窗口间出现缝隙或蓝边的情况,提高了监视大屏中的窗口的显示效果。

进一步参考图4,其示出了窗口控制方法的又一个实施例的流程400。该窗口控制方法的流程400,包括以下步骤:

步骤401,将目标界面中产生位置变化的窗口作为目标窗口,检测目标窗口的各边界在目标界面中的位置。

本实施例的步骤401可参见图1所示实施例的步骤101,此处不再赘述。

步骤402,将左边界所在直线与右边界所在直线之间的区域作为第一区域,将上边界所在直线与下边界所在直线之间的区域作为第二区域。

本实施例的步骤402可参见图1所示实施例的步骤102,此处不再赘述。

步骤403,确定位于第一区域以外的各窗口与目标窗口的横向间距。

在本实施例中,执行主体(如上述具有显示屏幕的电子设备)可以确定位于第一区域以外的各窗口与目标窗口的横向间距。此处,某个窗口与目标窗口的横向间距,即为该窗口与目标窗口在水平方向上的距离的最小值。

具体地,对于位于第一区域以外的每一个窗口,当该窗口位于第一区域的右侧(即该窗口的左边界所在直线位于目标窗口的右边界所在直线的右侧)时,可以将该窗口的左边界所在直线与上述目标窗口的右边界所在直线的距离,确定为该窗口与上述目标窗口的横向间距。当该窗口位于第一区域的左侧时(即该窗口的右边界所在直线位于目标窗口的左边界所在直线的左侧),可以将该窗口的右边界所在直线与上述目标窗口的左边界所在直线的距离,确定为该窗口与上述目标窗口的横向间距。

步骤404,确定位于第二区域以外的各窗口与目标窗口的纵向间距。

在本实施例中,上述执行主体可以确定位于第二区域以外的各窗口与目标窗口的纵向间距。此处,某个窗口与目标窗口的纵向间距,即为该窗口与目标窗口在竖直方向上的距离最小值。

具体地,对于位于第二区域以外的每一个窗口,当该窗口位于第二区域的下方时(即该窗口的上边界所在直线位于目标窗口的下边界所在直线的下方),可以将该窗口的上边界所在直线与上述目标窗口的下边界所在直线的距离,确定为该窗口与上述目标窗口的纵向间距。当该窗口位于第二区域的上方时(即该窗口的下边界所在直线位于目标窗口的上边界所在直线的上方),可以将该窗口的下边界所在直线与上述目标窗口的上边界所在直线的距离,确定为该窗口与上述目标窗口的纵向间距。

步骤405,从与目标窗口的横向间距最小的窗口中,选取第一候选窗口。

在本实施例中,上述执行主体可以从与目标窗口的横向间距最小的窗口中,选取第一候选窗口。此处的选取规则可以根据需要预先设定,例如,可以随机选取一个,或者有限选取位于某个区域(例如上述目标窗口的右侧)的第一候选窗口。

在本实施例的一些可选的实现方式中,当与上述目标窗口的横向间距最小的窗口仅存在一个时,上述执行主体可以直接将上述最小横向间距对应的窗口确定为第一候选窗口。

在本实施例的一些可选的实现方式中,当与上述目标窗口的横向间距最小的窗口存在至少两个时,上述执行主体可以将与上述目标窗口的横向间距最小的窗口汇总为第一窗口集,并执行如下步骤:

确定第一窗口集中的各窗口是否位于目标窗口的同侧。其中,上述同侧为左侧或右侧;

若是,可以将上述第一窗口集中的各窗口确定为第一候选窗口。

若否,可以确定目标窗口在产生步骤401所述的位置变化时的横向移动方向,并基于上述横向移动方向,从第一窗口集中,选取第一候选窗口。

在上述实现方式中,可选的,响应于确定上述横向移动方向指示向右移动,可以将上述第一窗口集中位于上述目标窗口的右侧的窗口确定为第一候选窗口。响应于确定上述横向移动方向指示向左移动,可以将上述第一窗口集中位于上述目标窗口的左侧的窗口确定为第一候选窗口。

步骤406,从与目标窗口的纵向间距最小的窗口中,选取第二候选窗口。

在本实施例中,上述执行主体可以从与目标窗口的纵向间距最小的窗口中,选取第二候选窗口。此处的选取规则可以根据需要预先设定,例如,可以随机选取一个,或者有限选取位于某个区域(例如上述目标窗口的下侧)的第二候选窗口。

在本实施例的一些可选的实现方式中,当与上述目标窗口的纵向间距最小的窗口仅存在一个时,上述执行主体可以直接将上述最小纵向间距对应的窗口确定为第二候选窗口。

在本实施例的一些可选的实现方式中,当与上述目标窗口的纵向间距最小的窗口存在至少两个时,上述执行主体可以将与上述目标窗口的纵向间距最小的窗口汇总为第二窗口集,执行如下步骤:

确定上述第二窗口集中的各窗口是否位于上述目标窗口的同方向,其中,上述同方向为上方或下方;

若是,可以将上述第二窗口集中的各窗口确定为第二候选窗口;

若否,可以确定上述目标窗口在产生上述位置变化时的纵向移动方向,基于上述纵向移动方向,从上述第二窗口集中,选取第二候选窗口。

在上述实现方式中,可选的,响应于确定上述纵向移动方向指示向下移动,将上述第二窗口集中位于上述目标窗口的下方的窗口确定为第二候选窗口。响应于确定上述纵向移动方向指示向上移动,将上述第二窗口集中位于上述目标窗口的上方的窗口确定为第二候选窗口。

步骤407,确定第二区域与第一候选窗口是否存在重合区域,并确定第一区域与第二候选窗口是否存在重合区域。

在本实施例中,可以利用多种方式确定第二区域与上述第一候选窗口是否存在重合区域,以及,确定第一区域与第二候选窗口是否存在重合区域。

作为示例,可以分别判断第一候选窗口的上边界和下边界是否位于目标窗口的上下边界所在直线之间(即第二区域)。若第一候选窗口的上边界或下边界位于目标窗口的上下边界所在直线之间,则可以确定第二区域与第一候选窗口存在重合区域。若第一候选窗口的上边界和下边界均不位于目标窗口的上下边界所在直线之间,则可以确定第二区域与第一候选窗口不存在重合区域。此处,可以利用相似的方式判断第一区域与第二候选窗口是否存在重合区域的方式,此处不再赘述。

作为又一示例,可以分别判断目标窗口的上边界和下边界是否位于第一候选窗口的上下边界所在直线之间。若目标窗口的上边界或下边界位于第一候选窗口的上下边界所在直线之间,则可以确定第二区域与第一候选窗口存在重合区域。若目标窗口的上边界和下边界均不位于第一候选窗口的上下边界所在直线之间,则可以确定第二区域与第一候选窗口不存在重合区域。此处,可以利用相似的方式判断第一区域与第二候选窗口是否存在重合区域的方式,此处不再赘述。

作为再一示例,可以确定第二区域与第一候选窗口是否包含相同的像素点坐标。若是,可以确定第二区域与第一候选窗口存在重合区域。此处,可以利用相似的方式判断第一区域与第二候选窗口是否存在重合区域的方式,此处不再赘述。

步骤408,响应于确定第二区域与第一候选窗口存在重合区域,将第一候选窗口确定为待吸附窗口,以及,响应于确定第一区域与第二候选窗口存在重合区域,将第二候选窗口确定为待吸附窗口。

步骤409,响应于确定第一候选窗口为待吸附窗口,将第一候选窗口与目标窗口的横向间距确定为目标窗口的横向待移动距离。

在本实施例中,响应于确定上述第一候选窗口为待吸附窗口,上述执行主体可以将上述第一候选窗口与上述目标窗口的横向间距确定为上述目标窗口的横向待移动距离。

此处,若第一候选窗口位于上述目标窗口的左侧,则可以将第一候选窗口的右边界所在直线与目标窗口的左边界所在直线的距离,作为第一候选窗口与目标窗口的横向间距。若第一候选窗口位于上述目标窗口的右侧,则可以将第一候选窗口的左边界所在直线与上述目标窗口的右边界所在直线的距离,作为第一候选窗口与目标窗口的横向间距。

步骤410,响应于确定第一候选窗口不为待吸附窗口,将横向待移动距离设置为零。

此时,由于无需将目标窗口吸附至第一候选窗口,因而,将横向待移动距离设置为零,可以使目标窗口不进行横向移动。

步骤411,响应于确定第二候选窗口为待吸附窗口,将第二候选窗口与目标窗口的纵向间距确定为目标窗口的纵向待移动距离。

在本实施例中,响应于确定第二候选窗口为待吸附窗口,上述执行主体可以将第二候选窗口与目标窗口的纵向间距确定为目标窗口的纵向待移动距离。

此处,若第二候选窗口位于目标窗口的上方,则可以将第二候选窗口的下边界所在直线与上述目标窗口的上边界所在直线的距离,作为第二候选窗口与目标窗口的纵向间距。若第二候选窗口位于上述目标窗口的下侧,则可以将第二候选窗口的上边界所在直线与上述目标窗口的下边界所在直线的距离,作为第二候选窗口与上述目标窗口的纵向间距。

步骤412,响应于确定第二候选窗口不为待吸附窗口,将纵向待移动距离设置为零。

此时,由于无需将目标窗口吸附至第二候选窗口,因而,将纵向待移动距离设置为零,可以使目标窗口不进行纵向移动。

步骤413,基于横向待移动距离和纵向待移动距离,将目标窗口吸附于各待吸附窗口的边界。

在本实施例中,上述执行主体可以基于横向待移动距离和纵向待移动距离,将目标窗口吸附于各待吸附窗口的边界。

作为一个示例,上述执行主体可以按照上述横向待移动距离和上述纵向待移动距离,对上述目标窗口进行移动,以使上述目标窗口吸附于各待吸附窗口的边界。

具体地,可以按照上述横向待移动距离,对上述目标窗口进行横向移动,使之贴至第一候选窗口;并按照上述纵向待移动距离,对上述目标窗口进行纵向移动,使之贴至第二候选窗口。

实践中,可以将目标窗口当前的左上角顶点坐标记为(x1,y1),将目标窗口当前的右下角顶点坐标记为(x2,y2),将横向待移动距离记为δx,将纵向待移动距离记为δy,将吸附后的目标窗口的左上角顶点坐标记为(x1’,y1’),将吸附后的目标窗口的右下角顶点坐标记为(x2’,y2’),按照以下情况,对x1’、y1’、x2’、y2’的值进行计算(所采用的坐标系可参照图2):

当第一候选窗口位于上述目标窗口的左侧时,使x1’=x1-δx,使x2’=x2-δx。

当第一候选窗口位于上述目标窗口的右侧时,使x1’=x1+δx,使x2’=x2+δx。

当第二候选窗口位于上述目标窗口的上方时,使y1’=y1-δy,使y2’=y2-δy。

当第二候选窗口位于上述目标窗口的下方时,使y1’=y1+δy,使y2’=y2+δy。

由此,可以根据第一候选窗口与目标窗口的位置关系、第二候选窗口与上述目标窗口的位置关系,计算出目标窗口待移动至的位置,从而进行目标窗口的移动。

作为又一示例,在电视墙的场景中,目标窗口为电视墙客户端中的某一窗口。在基于横向待移动距离和纵向待移动距离得到目标窗口待吸附位置的坐标(如上述(x1’,y1’)和(x2’,y2’))后,上述执行主体可以将该坐标下发至解码器,从而实现将电视墙中与目标窗口对应的监控窗口吸附于其他一个或多个监控窗口的边界,避免了电视墙中出现较大缝隙或蓝边等情况。

从图4中可以看出,与图1对应的实施例相比,本实施例中的窗口控制方法的流程400涉及了在不同情况下对第一候选窗口和第二候选窗口的步骤,以及,涉及了在不同情况下确定待吸附窗口的步骤。由此,本实施例描述的方案可以便捷地从多个窗口中选取最适合待吸附的窗口,提高了吸附操作的效果。

进一步参考图5,作为对上述各图所示方法的实现,本申请提供了一种窗口控制装置的一个实施例,该装置实施例与图1所示的方法实施例相对应,该装置具体可以应用于各种电子设备中。

如图5所示,本实施例所述的窗口控制装置500包括:检测单元501,被配置成将目标界面中产生位置变化的窗口作为目标窗口,检测上述目标窗口的各边界在上述目标界面中的位置,其中,上述目标窗口的边界包括左边界、右边界、上边界和下边界;选取单元502,被配置成将上述左边界所在直线与上述右边界所在直线之间的区域作为第一区域,将上述上边界所在直线与上述下边界所在直线之间的区域作为第二区域,从上述目标界面的其余窗口中,分别选取位于上述第一区域以外的第一候选窗口和位于上述第二区域以外的第二候选窗口;确定单元503,被配置成基于上述目标窗口与所选取的各候选窗口的位置关系,确定所选取的候选窗口中的待吸附窗口;吸附单元504,被配置成将上述目标窗口吸附于上述待吸附窗口。

在本实施例的一些可选的实现方式中,上述选取单元502包括:第一确定模块,被配置成确定位于上述第一区域以外的各窗口与上述目标窗口的横向间距;第二确定模块,被配置成确定位于上述第二区域以外的各窗口与上述目标窗口的纵向间距;第一选取模块,被配置成从与上述目标窗口的横向间距最小的窗口中,选取第一候选窗口;第二选取模块,被配置成从与上述目标窗口的纵向间距最小的窗口中,选取第二候选窗口。

在本实施例的一些可选的实现方式中,上述第一确定模块可以进一步被配置成:对于位于上述第一区域右侧的每一个窗口,将该窗口的左边界与上述目标窗口的右边界的距离,确定为该窗口与上述目标窗口的横向间距;对于位于上述第一区域左侧的每一个窗口,将该窗口的右边界与上述目标窗口的左边界的距离,确定为该窗口与上述目标窗口的横向间距。

在本实施例的一些可选的实现方式中,上述第二确定模块可以进一步被配置成:对于位于上述第二区域下方的每一个窗口,将该窗口的上边界与上述目标窗口的下边界的距离,确定为该窗口与上述目标窗口的纵向间距;对于位于上述第二区域上方的每一个窗口,将该窗口的下边界与上述目标窗口的上边界的距离,确定为该窗口与上述目标窗口的纵向间距。

在本实施例的一些可选的实现方式中,上述第一选取模块可以进一步被配置成:当与上述目标窗口的横向间距最小的窗口仅存在一个时,将上述最小横向间距对应的窗口确定为第一候选窗口。

在本实施例的一些可选的实现方式中,上述第一选取模块可以进一步被配置成:当与上述目标窗口的横向间距最小的窗口存在至少两个时,将与上述目标窗口的横向间距最小的窗口汇总为第一窗口集,执行如下步骤:确定上述第一窗口集中的各窗口是否位于上述目标窗口的同侧,其中,上述同侧为左侧或右侧;若是,将上述第一窗口集中的各窗口确定为第一候选窗口;若否,确定上述目标窗口在产生上述位置变化时的横向移动方向,基于上述横向移动方向,从上述第一窗口集中,选取第一候选窗口。

在本实施例的一些可选的实现方式中,上述第一选取模块可以进一步被配置成:响应于确定上述横向移动方向指示向右移动,将上述第一窗口集中位于上述目标窗口的右侧的窗口确定为第一候选窗口;响应于确定上述横向移动方向指示向左移动,将上述第一窗口集中位于上述目标窗口的左侧的窗口确定为第一候选窗口。

在本实施例的一些可选的实现方式中,上述第二选取模块可以进一步被配置成:当与上述目标窗口的纵向间距最小的窗口仅存在一个时,将上述最小纵向间距对应的窗口确定为第二候选窗口。

在本实施例的一些可选的实现方式中,上述第二选取模块可以进一步被配置成:当与上述目标窗口的纵向间距最小的窗口存在至少两个时,将与上述目标窗口的纵向间距最小的窗口汇总为第二窗口集,执行如下步骤:确定上述第二窗口集中的各窗口是否位于上述目标窗口的同方向,其中,上述同方向为上方或下方;若是,将上述第二窗口集中的各窗口确定为第二候选窗口;若否,确定上述目标窗口在产生上述位置变化时的纵向移动方向,基于上述纵向移动方向,从上述第二窗口集中,选取第二候选窗口。

在本实施例的一些可选的实现方式中,上述第二选取模块可以进一步被配置成:响应于确定上述纵向移动方向指示向下移动,将上述第二窗口集中位于上述目标窗口的下方的窗口确定为第二候选窗口;响应于确定上述纵向移动方向指示向上移动,将上述第二窗口集中位于上述目标窗口的上方的窗口确定为第二候选窗口。

在本实施例的一些可选的实现方式中,上述确定单元503可以进一步被配置成:确定上述第二区域与上述第一候选窗口是否存在重合区域,并确定上述第一区域与上述第二候选窗口是否存在重合区域;响应于确定上述第二区域与上述第一候选窗口存在重合区域,将上述第一候选窗口确定为待吸附窗口,以及,响应于确定上述第一区域与上述第二候选窗口存在重合区域,将上述第二候选窗口确定为待吸附窗口。

在本实施例的一些可选的实现方式中,上述吸附单元504可以进步被配置成:响应于确定上述第一候选窗口为待吸附窗口,将上述第一候选窗口与上述目标窗口的横向间距确定为上述目标窗口的横向待移动距离;响应于确定上述第一候选窗口不为待吸附窗口,将横向待移动距离设置为零;响应于确定上述第二候选窗口为待吸附窗口,将上述第二候选窗口与上述目标窗口的纵向间距确定为上述目标窗口的纵向待移动距离;响应于确定上述第二候选窗口不为待吸附窗口,将纵向待移动距离设置为零;基于上述横向待移动距离和上述纵向待移动距离,将上述目标窗口吸附于各待吸附窗口的边界。

本申请的上述实施例提供的装置,通过检测目标界面中产生位置变化的目标窗口的各边界的位置,而后选取出第一候选窗口和第二候选窗口,之后基于上述目标窗口与所选取的各候选窗口的位置关系,确定所选取的候选窗口中的待吸附窗口,最后将上述目标窗口吸附于上述待吸附窗口。从而,支持了在目标界面中存在多个窗口时的窗口吸附操作,解决了人工移动窗口时的移动位置不精确的问题,从而提高了窗口控制的精确性。

下面参考图6,其示出了适于用来实现本申请实施例的电子设备的计算机系统600的结构示意图。图6示出的电子设备仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。

如图6所示,计算机系统600包括中央处理单元(cpu)601,其可以根据存储在只读存储器(rom)602中的程序或者从存储部分608加载到随机访问存储器(ram)603中的程序而执行各种适当的动作和处理。在ram603中,还存储有系统600操作所需的各种程序和数据。cpu601、rom602以及ram603通过总线604彼此相连。输入/输出(i/o)接口605也连接至总线604。

以下部件连接至i/o接口605:包括键盘、鼠标等的输入部分606;包括诸如液晶显示器(lcd)等以及扬声器等的输出部分607;包括硬盘等的存储部分608;以及包括诸如lan卡、调制解调器等的网络接口卡的通信部分609。通信部分609经由诸如因特网的网络执行通信处理。驱动器610也根据需要连接至i/o接口605。可拆卸介质611,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器610上,以便于从其上读出的计算机程序根据需要被安装入存储部分608。

特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分609从网络上被下载和安装,和/或从可拆卸介质611被安装。在该计算机程序被中央处理单元(cpu)601执行时,执行本申请的方法中限定的上述功能。需要说明的是,本申请所述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、rf等等,或者上述的任意合适的组合。

附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

描述于本申请实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元也可以设置在处理器中,其中,这些单元的名称在某种情况下并不构成对该单元本身的限定。

作为另一方面,本申请还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的装置中所包含的;也可以是单独存在,而未装配入该装置中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该装置执行时,使得该装置:将目标界面中产生位置变化的窗口作为目标窗口,检测目标窗口的各边界在目标界面中的位置,其中,目标窗口的边界包括左边界、右边界、上边界和下边界;将左边界所在直线与右边界所在直线之间的区域作为第一区域,将上边界所在直线与下边界所在直线之间的区域作为第二区域,从目标界面的其余窗口中,分别选取位于第一区域以外的第一候选窗口和位于第二区域以外的第二候选窗口;分别基于第二区域与第一候选窗口的位置关系以及第一区域与第二候选窗口的位置关系,确定各候选窗口是否为待吸附窗口;将目标窗口吸附于所确定出的待吸附窗口。

以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1