CN106547528A - 一种界面布局方法以及装置 - Google Patents
一种界面布局方法以及装置 Download PDFInfo
- Publication number
- CN106547528A CN106547528A CN201510609006.3A CN201510609006A CN106547528A CN 106547528 A CN106547528 A CN 106547528A CN 201510609006 A CN201510609006 A CN 201510609006A CN 106547528 A CN106547528 A CN 106547528A
- Authority
- CN
- China
- Prior art keywords
- control
- layout
- wpf
- controls
- parameter
- 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
Links
Landscapes
- Document Processing Apparatus (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
本发明实施例公开了一种界面布局方法以及装置,其中方法包括:获取基于WPF的界面布局描述文件,所述界面布局描述文件包括至少一个WPF控件中各WPF控件的布局参数;创建与所述各WPF控件分别对应的基于目标语言且用于计算布局信息的第一控件,并将所述各WPF控件的布局参数分别添加到对应的所述第一控件,并将所述第一控件与对应的基于目标语言且用于显示的第二控件进行绑定;根据所述第一控件中的布局参数计算所述第一控件的布局信息,并将所述第一控件的布局信息同步到已绑定的所述第二控件中,以完成界面布局。采用本发明,可以提高基于C++语言的界面开发效率。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种界面布局方法以及装置。
背景技术
在Windows平台下,常用的C++语言的界面开发库有MFC(MicrosoftFoundation Classes,微软基础类库)和WTL(Windows Template Library,微软公司提供的一种界面开发库),这些界面开发库都提供了多种不同的系统原生控件,VS(Microsoft Visual Studio,微软公司提供的开发工具)为这些界面开发库提供了一套可视化界面布局工具,并通过资源文件对控件布局信息进行描述,但系统原生控件一般不能嵌套,因此,导致界面布局不够灵活,即导致基于C++语言的界面开发效率不高。
相比于现有的WPF(Windows Presentation Foundation,微软公司提供的用户界面框架)而言,系统原生控件的可定制性和易用性都有很大的差距。虽然WPF有一套方便、快捷、灵活的界面设计和开发方案,且WPF的控件有很灵活的布局规则,但是WPF不支持原生C++语言,因此,基于C++语言的界面开发效率始终得不到提高。
发明内容
本发明实施例提供一种界面布局方法以及装置,可以提高基于C++语言的界面开发效率。
本发明实施例提供了一种界面布局方法,包括:
获取基于WPF的界面布局描述文件,所述界面布局描述文件包括至少一个WPF控件中各WPF控件的布局参数;
创建与所述各WPF控件分别对应的基于目标语言且用于计算布局信息的第一控件,并将所述各WPF控件的布局参数分别添加到对应的所述第一控件,并将所述第一控件与对应的基于目标语言且用于显示的第二控件进行绑定;
根据所述第一控件中的布局参数计算所述第一控件的布局信息,并将所述第一控件的布局信息同步到已绑定的所述第二控件中,以完成界面布局。
相应地,本发明实施例还提供了一种界面布局装置,包括:
获取模块,用于获取基于WPF的界面布局描述文件,所述界面布局描述文件包括至少一个WPF控件中各WPF控件的布局参数;
创建绑定模块,用于创建与所述各WPF控件分别对应的基于目标语言且用于计算布局信息的第一控件,并将所述各WPF控件的布局参数分别添加到对应的所述第一控件,并将所述第一控件与对应的基于目标语言且用于显示的第二控件进行绑定;
计算同步模块,用于根据所述第一控件中的布局参数计算所述第一控件的布局信息,并将所述第一控件的布局信息同步到已绑定的所述第二控件中,以完成界面布局。
本发明实施例通过获取基于WPF的界面布局描述文件,并创建与界面布局描述文件中的各WPF控件分别对应的基于目标语言且用于计算布局信息的第一控件,再将各WPF控件的布局参数分别添加到对应的第一控件,并将第一控件与对应的基于目标语言且用于显示的第二控件进行绑定,再根据第一控件中的布局参数计算第一控件的布局信息,并将第一控件的布局信息同步到已绑定的第二控件中,使得可以将WPF的布局规则通过第一控件运用到基于C++语言的界面开发中,使得基于C++语言的界面开发也可以具有一套方便、快捷、灵活的界面设计和开发方案,以提高基于C++语言的界面开发效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种界面布局方法的流程示意图;
图2是本发明实施例提供的其中一种控件转换绑定方法的流程示意图;
图3是本发明实施例提供的其中一种控件计算同步方法的流程示意图;
图4是本发明实施例提供的其中一种控件更新方法的流程示意图;
图5是本发明实施例提供的一种界面布局装置的结构示意图;
图6是本发明实施例提供的一种创建绑定模块的结构示意图;
图7是本发明实施例提供的一种计算同步模块的结构示意图;
图8是本发明实施例提供的另一种界面布局装置的结构示意图;
图9是本发明实施例提供的又一种界面布局装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参见图1,是本发明实施例提供的一种界面布局方法的流程示意图,所述方法可以包括:
S101,获取基于WPF的界面布局描述文件,所述界面布局描述文件包括至少一个WPF控件中各WPF控件的布局参数;
具体的,首先可以通过VS的各类工具生成界面布局描述文件,所述界面布局描述文件为XAML(eXtensible Application Markup Language,可扩展应用程序标记语言)文件,然后本发明实施例所提供的界面布局装置可以获取基于WPF的界面布局描述文件,即获取XAML文件。所述XAML文件符合WPF的标准,所述XAML文件包括至少一个WPF控件,每个WPF控件均可以包含对应的布局参数以及标识参数。其中,WPF控件的标识参数可以为WPF控件的Name参数,Name参数为字符串类型且是WPF控件的标识;Name参数不为空时,必须是唯一的,不可重复。所述XAML文件是通过树形结构的方式来描述各个WPF控件之间的父子关系。本发明实施例可利用VS为WPF提供可视化的界面编辑工具和XAML文件编辑工具,也可利用其它工具对XAML文件进行编辑。
S102,创建与所述各WPF控件分别对应的基于目标语言且用于计算布局信息的第一控件,并将所述各WPF控件的布局参数分别添加到对应的所述第一控件,并将所述第一控件与对应的基于目标语言且用于显示的第二控件进行绑定;
具体的,所述界面布局装置获得XAML文件中的各个WPF控件后,可以根据预设的控件映射关系集合创建与所述各WPF控件分别对应的基于目标语言且用于计算布局信息的第一控件,其中,所述目标语言为C++语言,所述控件映射关系集合包含各种WPF控件与各个对应的基于C++语言的第一控件之间的映射关系,即在S101步骤之前需要预先将各种WPF控件通过C++语言转换成各个对应的第一控件,并将各种WPF控件与各第一控件之间的映射关系封装成所述控件映射关系集合。因此,根据所述控件映射关系集合创建对应的第一控件的具体过程可以为:在所述控件映射关系集合中找到与所述各WPF控件分别对应的映射关系,并根据所述映射关系获得各个对应的第一控件,以完成对所述第一控件的创建。
所述第一控件可以称为仿WPF控件,之所以称为仿WPF控件,是因为仿WPF控件需要保持WPF控件的布局规则,因此,所述界面布局装置需要将所述各WPF控件的布局参数添加到对应的各个仿WPF控件中,以作为后续计算界面布局使用。所述界面布局装置还需要将所述各WPF控件的Name参数添加到对应的各个仿WPF控件中,使得各个仿WPF控件也可以通过Name参数进行标识。
所述各仿WPF控件添加有对应的Name参数后,可以将所述Name参数不为空的仿WPF控件与对应的基于目标语言且用于显示的第二控件进行绑定。其中,所述第二控件所基于的目标语言也是C++语言,所述第二控件可以包括系统原生控件和DUI(DirectUI,指除根控件外,其他子控件都不存在窗口句柄的控件)控件,与仿WPF控件对应的所述第二控件可以由开发人员根据所述仿WPF控件在所述系统原生控件库和所述DUI控件库中选择出。其中,对所述第二控件的绑定具体过程可以为:将与所述仿WPF控件中的Name参数也添加到对应的所述第二控件中,使得所述仿WPF控件与对应的所述第二控件可以具有相同的标识,以实现对所述仿WPF控件与对应的所述第二控件的绑定。对于Name参数为空的仿WPF控件,可以无需为其设置对应的第二控件。
其中,由于WPF控件的类型众多,所以仿WPF控件与WPF控件可以无需是一一对应的关系。例如,可以只为部分核心WPF控件建立具有一一对应关系的仿WPF控件,如Grid、StackPanel等,而非核心的WPF控件可共同与默认的仿WPF控件对应。所述仿WPF控件只用于计算布局信息,不在界面中显示,也不处理键盘、鼠标和绘制消息;所述第二控件可以在界面中显示,并处理键盘、鼠标和绘制消息。
S103,根据所述第一控件中的布局参数计算所述第一控件的布局信息,并将所述第一控件的布局信息同步到已绑定的所述第二控件中,以完成界面布局;
具体的,所述界面布局装置在将所述Name参数不为空的仿WPF控件与对应的基于目标语言且用于显示的第二控件进行绑定后,可以对所述各仿WPF控件进行遍历,以计算每个仿WPF控件的布局信息,即根据所述第一控件中的布局参数计算所述第一控件的布局信息,对所述布局信息的计算过程可以参见现有的WPF控件中对布局信息的计算方式,这里不再进行赘述。计算好每个仿WPF控件的布局信息后,可以将所述Name参数不为空的仿WPF控件的布局信息同步到已绑定的所述第二控件中,以完成基于C++语言的界面布局。
本发明实施例通过获取基于WPF的界面布局描述文件,并创建与界面布局描述文件中的各WPF控件分别对应的基于目标语言且用于计算布局信息的第一控件,再将各WPF控件的布局参数分别添加到对应的第一控件,并将第一控件与对应的基于目标语言且用于显示的第二控件进行绑定,再根据第一控件中的布局参数计算第一控件的布局信息,并将第一控件的布局信息同步到已绑定的第二控件中,使得可以将WPF的布局规则通过第一控件运用到基于C++语言的界面开发中,使得基于C++语言的界面开发也可以具有一套方便、快捷、灵活的界面设计和开发方案,以提高基于C++语言的界面开发效率。
进一步的,再请参见图2,是本发明实施例提供的其中一种控件转换绑定方法的流程示意图,所述方法可以对应于上述图1对应实施例中的S102,所述方法可以包括:
S201,将所述界面布局描述文件中最上层的WPF控件作为目标WPF控件;
具体的,所述界面布局装置可以从所述XAML文件中最上层的WPF控件开始逐个对各个WPF控件进行遍历,以创建各对应的第一控件。从所述XAML文件中最上层的WPF控件开始遍历即指先对所述XAML文件中最上层的WPF控件进行处理,此时,所述界面布局装置先将所述界面布局描述文件中最上层的WPF控件作为目标WPF控件。所述XAML文件中最上层的WPF控件为XAML文件中的WPF根控件。
S202,创建与所述目标WPF控件对应的基于目标语言且用于计算布局信息的第一控件,并将所述目标WPF控件的布局参数和标识参数分别添加到对应的所述第一控件;
具体的,所述界面布局装置可以根据预设的控件映射关系集合创建与所述目标WPF控件对应的基于C++语言且用于计算布局信息的第一控件,所述界面布局装置根据所述控件映射关系集合创建与所述目标WPF控件对应的所述第一控件的具体过程可以参见上述图1对应实施例中的S102,这里不再进行赘述。在创建好对应的所述第一控件后,即可将所述目标WPF控件的布局参数和标识参数分别添加到对应的所述第一控件中。
S203,判断所述第一控件的标识参数是否为空;
具体的,若判断所述第一控件的标识参数不为空,则执行S204步骤,否则,直接执行S205步骤。
S204,将所述第一控件与对应的基于目标语言且用于显示的第二控件进行绑定;
具体的,若S203判断出所述第一控件的标识参数不为空,则所述界面布局装置将所述第一控件与对应的基于C++语言且用于显示的第二控件进行绑定,所述第一控件与对应的所述第二控件进行绑定的具体过程也可以参见上述图1对应实施例中的S102,这里不再进行赘述。
S205,判断是否存在下一个未处理的WPF控件;
具体的,若S203判断出所述第一控件的标识参数为空,则进一步判断是否存在下一个未处理的WPF控件,即判断是否存在下一个还未遍历到的WPF控件,例如,若正在遍历WPF根控件,则下一个还未遍历到的WPF控件可以为所述WPF根控件的子控件。或者,在执行完S204中将所述第一控件与对应的基于目标语言且用于显示的第二控件进行绑定的步骤后,也可以进一步判断是否存在下一个未处理的WPF控件。
若判断出存在下一个未处理的WPF控件,说明还未遍历完所述XAML文件中的各个WPF控件,则执行S206的步骤,以继续进行遍历。若判断出不存在下一个未处理的WPF控件,说明已遍历完所述XAML文件中的各个WPF控件,即为所述XAML文件中的各个WPF控件都创建了对应的所述第一控件。
S206,将下一个未处理的WPF控件作为目标WPF控件;
具体的,若S205判断出存在下一个未处理的WPF控件,说明还未遍历完所述XAML文件中的各个WPF控件,则将下一个未处理的WPF控件作为目标WPF控件,并返回到S202步骤,以重复执行S202-S206的步骤,直至所述XAML文件中不存在未处理的WPF控件。
本发明实施例通过遍历XAML文件中的各个WPF控件,以创建出各个WPF控件分别对应的第一控件,并将WPF控件的布局参数和标识参数添加到对应的第一控件中,并将标识参数不为空的第一控件与对应的基于目标语言且用于显示的第二控件进行绑定,使得可以将WPF的布局规则通过第一控件运用到基于C++语言的界面开发中,使得基于C++语言的界面开发也可以具有一套方便、快捷、灵活的界面设计和开发方案,以提高基于C++语言的界面开发效率。
进一步的,再请参见图3,是本发明实施例提供的其中一种控件计算同步方法的流程示意图,所述方法可以对应于上述图1对应实施例中的S103,所述方法可以包括:
S301,将所述界面布局描述文件中最上层的WPF控件对应的第一控件作为目标第一控件;
具体的,在所述界面布局装置创建各个对应的所述第一控件后,所述界面布局装置开始对所有第一控件进行遍历,并从所述XAML文件中最上层的WPF控件对应的第一控件开始遍历。在遍历所述XAML文件中最上层的WPF控件对应的第一控件时,可以先将所述XAML文件中最上层的WPF控件对应的第一控件作为目标第一控件。所述XAML文件中最上层的WPF控件为XAML文件中的WPF根控件。
S302,根据所述目标第一控件中的布局参数计算所述目标第一控件的布局信息;
具体的,所述界面布局装置可以根据所述目标第一控件中的布局参数计算所述目标第一控件的布局信息。对所述布局信息的计算过程可以参见现有的WPF控件中对布局信息的计算方式,这里不再进行赘述。
S303,判断所述目标第一控件是否绑定有所述第二控件;
具体的,若判断出所述目标第一控件绑定有所述第二控件,则执行S304步骤,否则,直接执行S305步骤。
S304,将所述目标第一控件的布局信息同步到已绑定的所述第二控件中;
具体的,若S303判断出所述目标第一控件绑定有所述第二控件,则所述界面布局装置将所述目标第一控件的布局信息同步到已绑定的所述第二控件中。
S305,判断是否存在下一个未计算的第一控件;
具体的,若S303判断出所述目标第一控件没有绑定所述第二控件,则进一步判断是否存在下一个未计算的第一控件,即判断是否存在下一个还未遍历到的第一控件。或者,在执行完S304中将所述目标第一控件的布局信息同步到已绑定的所述第二控件中的步骤后,也可以进一步判断是否存在下一个未计算的第一控件。
若判断出存在下一个未计算的第一控件,说明还未遍历完所有第一控件,则执行S306步骤,以继续进行遍历。若判断出不存在下一个未计算的第一控件,说明已遍历完所有第一控件,即已计算完所有第一控件的布局信息。
S306,将下一个未计算的第一控件作为目标第一控件;
具体的,若S305判断出存在下一个未计算的第一控件,说明还未遍历完所有第一控件,则将下一个未计算的第一控件作为目标第一控件,并返回到S302步骤,以重复执行S302-S306的步骤,直至计算出所有第一控件的布局信息。
本发明实施例通过遍历所有第一控件,可以计算各个第一控件的布局信息,并将标识参数不为空的第一控件的布局信息同步到已绑定的第二控件,使得可以将WPF的布局规则通过第一控件运用到基于C++语言的界面开发中,使得基于C++语言的界面开发也可以具有一套方便、快捷、灵活的界面设计和开发方案,以提高基于C++语言的界面开发效率。
再请参见图4,是本发明实施例提供的其中一种控件更新方法的流程示意图,所述方法可以在上述图1对应实施例中的S103步骤之后执行,所述方法可以包括:
S401,当检测到对所述第一控件的参数进行修改时,获取至少一个具有修改关联关系的第一控件,并将所述至少一个具有修改关联关系的第一控件中的最上层的第一控件作为待修改第一控件;
具体的,在完成界面布局后,当检测到对所述第一控件的参数进行修改时,所述界面布局装置可以获取至少一个具有修改关联关系的第一控件,所述至少一个具有修改关联关系的第一控件均为受到此次修改影响的第一控件。所述界面布局装置开始对所述至少一个具有修改关联关系的第一控件进行遍历,并从所述至少一个具有修改关联关系的第一控件中的最上层的第一控件开始遍历。在遍历所述至少一个具有修改关联关系的第一控件中的最上层的第一控件时,可以先将所述至少一个具有修改关联关系的第一控件中的最上层的第一控件作为待修改第一控件。
S402,更新所述待修改第一控件的布局信息;
具体的,所述界面布局装置可以根据所修改的参数更新所述待修改第一控件的布局信息,即重新计算所述待修改第一控件的布局信息。
S403,判断所述待修改第一控件是否绑定有所述第二控件;
具体的,若判断出所述待修改第一控件绑定有所述第二控件,则执行S404步骤,否则,直接执行S405步骤。
S404,将所述待修改第一控件的更新后的布局信息同步到已绑定的所述第二控件中;
具体的,若S403判断出所述待修改第一控件绑定有所述第二控件,则所述界面布局装置将所述待修改第一控件的更新后的布局信息同步到已绑定的所述第二控件中。
S405,判断是否存在下一个未更新且具有修改关联关系的第一控件;
具体的,若S403判断出所述待修改第一控件没有绑定所述第二控件,则进一步判断是否存在下一个未更新且具有修改关联关系的第一控件,即判断是否存在下一个还未遍历到的具有修改关联关系的第一控件。或者,在执行完S404中将所述待修改第一控件的更新后的布局信息同步到已绑定的所述第二控件中的步骤后,也可以进一步判断是否存在下一个未更新且具有修改关联关系的第一控件。
若判断出存在下一个未更新且具有修改关联关系的第一控件,说明还未遍历完所述至少一个具有修改关联关系的第一控件,则执行S406步骤,以继续进行遍历。若判断出不存在下一个未更新且具有修改关联关系的第一控件,说明已遍历完所述至少一个具有修改关联关系的第一控件,即已更新完所述至少一个具有修改关联关系的第一控件的布局信息。
S406,将下一个未更新且具有修改关联关系的第一控件作为待修改第一控件;
具体的,若405判断出存在下一个未更新且具有修改关联关系的第一控件,说明还未遍历完所述至少一个具有修改关联关系的第一控件,则将下一个未更新且具有修改关联关系的第一控件作为待修改第一控件,并返回到S402步骤,以重复执行S402-S406的步骤,直至所述至少一个具有修改关联关系的第一控件均已被更新。
本发明实施例在检测到对所述第一控件的参数进行修改时,可以通过获取至少一个具有修改关联关系的第一控件,以对至少一个具有修改关联关系的第一控件的布局信息进行更新,并将更新后的布局信息同步到所绑定的第二控件,由于在参数被修改后,可以同步更新对应的第二控件,所以使得在修改界面布局时也可以具有方便、快捷、灵活等优点,进一步提高基于C++语言的界面开发效率。
请参见图5,是本发明实施例提供的一种界面布局装置的结构示意图,所述界面布局装置1可以包括:获取模块10、创建绑定模块20、计算同步模块30;
所述获取模块10,用于获取基于WPF的界面布局描述文件,所述界面布局描述文件包括至少一个WPF控件中各WPF控件的布局参数;
具体的,首先可以通过VS的各类工具生成界面布局描述文件,所述界面布局描述文件为XAML文件,然后所述获取模块10可以获取基于WPF的界面布局描述文件,即获取XAML文件。所述XAML文件符合WPF的标准,所述XAML文件包括至少一个WPF控件,每个WPF控件均可以包含对应的布局参数以及标识参数。其中,WPF控件的标识参数可以为WPF控件的Name参数,Name参数为字符串类型且是WPF控件的标识;Name参数不为空时,必须是唯一的,不可重复。所述XAML文件是通过树形结构的方式来描述各个WPF控件之间的父子关系。本发明实施例可利用VS为WPF提供可视化的界面编辑工具和XAML文件编辑工具,也可利用其它工具对XAML文件进行编辑。
所述创建绑定模块20,用于创建与所述各WPF控件分别对应的基于目标语言且用于计算布局信息的第一控件,并将所述各WPF控件的布局参数分别添加到对应的所述第一控件,并将所述第一控件与对应的基于目标语言且用于显示的第二控件进行绑定;
具体的,所述获取模块10获得XAML文件中的各个WPF控件后,所述创建绑定模块20可以根据预设的控件映射关系集合创建与所述各WPF控件分别对应的基于目标语言且用于计算布局信息的第一控件,其中,所述目标语言为C++语言,所述控件映射关系集合包含各种WPF控件与各个对应的基于C++语言的第一控件之间的映射关系,即所述界面布局装置1需要预先将各种WPF控件通过C++语言转换成各个对应的第一控件,并将各种WPF控件与各第一控件之间的映射关系封装成所述控件映射关系集合。因此,所述创建绑定模块20根据所述控件映射关系集合创建对应的第一控件的具体过程可以为:在所述控件映射关系集合中找到与所述各WPF控件分别对应的映射关系,并根据所述映射关系获得各个对应的第一控件,以完成对所述第一控件的创建。
所述第一控件可以称为仿WPF控件,之所以称为仿WPF控件,是因为仿WPF控件需要保持WPF控件的布局规则,因此,所述创建绑定模块20需要将所述各WPF控件的布局参数添加到对应的各个仿WPF控件中,以作为后续计算界面布局使用。所述创建绑定模块20还需要将所述各WPF控件的Name参数添加到对应的各个仿WPF控件中,使得各个仿WPF控件也可以通过Name参数进行标识。
所述各仿WPF控件添加有对应的Name参数后,所述创建绑定模块20可以继续将所述Name参数不为空的仿WPF控件与对应的基于目标语言且用于显示的第二控件进行绑定。其中,所述第二控件所基于的目标语言也是C++语言,所述第二控件可以包括系统原生控件和DUI控件,与仿WPF控件对应的所述第二控件可以由开发人员根据所述仿WPF控件在所述系统原生控件库和所述DUI控件库中选择出。其中,所述创建绑定模块20对所述第二控件的绑定具体过程可以为:将与所述仿WPF控件中的Name参数也添加到对应的所述第二控件中,使得所述仿WPF控件与对应的所述第二控件可以具有相同的标识,以实现对所述仿WPF控件与对应的所述第二控件的绑定。对于Name参数为空的仿WPF控件,可以无需为其设置对应的第二控件。
其中,由于WPF控件的类型众多,所以仿WPF控件与WPF控件可以无需是一一对应的关系。例如,可以只为部分核心WPF控件建立具有一一对应关系的仿WPF控件,如Grid、StackPanel等,而非核心的WPF控件可共同与默认的仿WPF控件对应。所述仿WPF控件只用于计算布局信息,不在界面中显示,也不处理键盘、鼠标和绘制消息;所述第二控件可以在界面中显示,并处理键盘、鼠标和绘制消息。
所述计算同步模块30,用于根据所述第一控件中的布局参数计算所述第一控件的布局信息,并将所述第一控件的布局信息同步到已绑定的所述第二控件中,以完成界面布局;
具体的,所述创建绑定模块20在将所述Name参数不为空的仿WPF控件与对应的基于目标语言且用于显示的第二控件进行绑定后,所述计算同步模块30可以对所述各仿WPF控件进行遍历,以计算每个仿WPF控件的布局信息,即根据所述第一控件中的布局参数计算所述第一控件的布局信息,所述计算同步模块30对所述布局信息的计算过程可以参见现有的WPF控件中对布局信息的计算方式,这里不再进行赘述。计算好每个仿WPF控件的布局信息后,所述计算同步模块30继续将所述Name参数不为空的仿WPF控件的布局信息同步到已绑定的所述第二控件中,以完成基于C++语言的界面布局。
进一步的,再请参见图6,是本发明实施例提供的一种创建绑定模块20的结构示意图,所述创建绑定模块20可以包括:第一确定单元201、创建添加单元202、第一判断单元203、绑定单元204;
所述第一确定单元201,用于将所述界面布局描述文件中最上层的WPF控件作为目标WPF控件;
具体的,所述创建绑定模块20可以从所述XAML文件中最上层的WPF控件开始逐个对各个WPF控件进行遍历,以创建各对应的第一控件。从所述XAML文件中最上层的WPF控件开始遍历即指先对所述XAML文件中最上层的WPF控件进行处理,此时,所述第一确定单元201先将所述界面布局描述文件中最上层的WPF控件作为目标WPF控件。所述XAML文件中最上层的WPF控件为XAML文件中的WPF根控件。
所述创建添加单元202,用于创建与所述目标WPF控件对应的基于目标语言且用于计算布局信息的第一控件,并将所述目标WPF控件的布局参数和标识参数分别添加到对应的所述第一控件;
具体的,所述创建添加单元202可以根据预设的控件映射关系集合创建与所述目标WPF控件对应的基于C++语言且用于计算布局信息的第一控件,所述创建添加单元202根据所述控件映射关系集合创建与所述目标WPF控件对应的所述第一控件的具体过程可以参见上述图5对应实施例中对所述创建绑定模块20的描述,这里不再进行赘述。所述创建添加单元202在创建好对应的所述第一控件后,可继续将所述目标WPF控件的布局参数和标识参数分别添加到对应的所述第一控件中。
所述第一判断单元203,用于判断所述第一控件的标识参数是否为空;
所述第一确定单元201,还用于若所述第一判断单元203判断为是,则将下一个未处理的WPF控件作为目标WPF控件,并返回所述创建添加单元202进行控件创建处理,直至所述界面布局描述文件中不存在未处理的WPF控件;
具体的,若所述第一判断单元203判断为是,则所述第一确定单元201将下一个未处理的WPF控件作为目标WPF控件,并返回所述创建添加单元202进行控件创建处理,即由所述创建添加单元202和所述第一判断单元203重复执行对应操作,为未处理的WPF控件逐一创建对应的第一控件,直至所述界面布局描述文件中不存在未处理的WPF控件。
所述绑定单元204,用于若所述第一判断单元203判断为否,则将所述第一控件与对应的基于目标语言且用于显示的第二控件进行绑定,并将下一个未处理的WPF控件作为目标WPF控件,并返回所述创建添加单元202进行控件创建处理,直至所述界面布局描述文件中不存在未处理的WPF控件;
具体的,若所述第一判断单元203判断为否,则所述绑定单元204将所述第一控件与对应的基于目标语言且用于显示的第二控件进行绑定,并将下一个未处理的WPF控件作为目标WPF控件,并返回所述创建添加单元202进行控件创建处理,即由所述创建添加单元202和所述第一判断单元203重复执行对应操作,为未处理的WPF控件逐一创建对应的第一控件,直至所述界面布局描述文件中不存在未处理的WPF控件。
进一步的,再请参见图7,是本发明实施例提供的一种计算同步模块30的结构示意图,所述计算同步模块30可以包括:第二确定单元301、计算单元302、第二判断单元303、同步单元304;
所述第二确定单元301,用于将所述界面布局描述文件中最上层的WPF控件对应的第一控件作为目标第一控件;
具体的,在创建出各个对应的所述第一控件后,所述计算同步模块30开始对所有第一控件进行遍历,并从所述XAML文件中最上层的WPF控件对应的第一控件开始遍历。在遍历所述XAML文件中最上层的WPF控件对应的第一控件时,所述第二确定单元301可以先将所述XAML文件中最上层的WPF控件对应的第一控件作为目标第一控件。所述XAML文件中最上层的WPF控件为XAML文件中的WPF根控件。
所述计算单元302,用于根据所述目标第一控件中的布局参数计算所述目标第一控件的布局信息;
具体的,所述计算单元302可以根据所述目标第一控件中的布局参数计算所述目标第一控件的布局信息。对所述布局信息的计算过程可以参见现有的WPF控件中对布局信息的计算方式,这里不再进行赘述。
所述第二判断单元303,用于判断所述目标第一控件是否绑定有所述第二控件;
所述第二确定单元301,还用于若所述第二判断单元303判断为否,则将下一个未计算的第一控件作为目标第一控件,并返回所述计算单元302进行布局信息计算处理,直至计算出所有第一控件的布局信息;
具体的,若所述第二判断单元303判断为否,则所述第二确定单元301将下一个未计算的第一控件作为目标第一控件,并返回所述计算单元302进行布局信息计算处理,即由所述计算单元302和所述第二判断单元303重复执行对应操作,为未计算的第一控件逐一计算对应的布局信息,直至计算出所有第一控件的布局信息。
所述同步单元304,用于若所述第二判断单元303判断为是,则将所述目标第一控件的布局信息同步到已绑定的所述第二控件中,并将下一个未计算的第一控件作为目标第一控件,并返回所述计算单元302进行布局信息计算处理,直至计算出所有第一控件的布局信息;
具体的,若所述第二判断单元303判断为是,则所述同步单元304将所述目标第一控件的布局信息同步到已绑定的所述第二控件中,并将下一个未计算的第一控件作为目标第一控件,并返回所述计算单元302进行布局信息计算处理,即由所述计算单元302和所述第二判断单元303重复执行对应操作,为未计算的第一控件逐一计算对应的布局信息,直至计算出所有第一控件的布局信息。
本发明实施例通过获取基于WPF的界面布局描述文件,并创建与界面布局描述文件中的各WPF控件分别对应的基于目标语言且用于计算布局信息的第一控件,再将各WPF控件的布局参数分别添加到对应的第一控件,并将第一控件与对应的基于目标语言且用于显示的第二控件进行绑定,再根据第一控件中的布局参数计算第一控件的布局信息,并将第一控件的布局信息同步到已绑定的第二控件中,使得可以将WPF的布局规则通过第一控件运用到基于C++语言的界面开发中,使得基于C++语言的界面开发也可以具有一套方便、快捷、灵活的界面设计和开发方案,以提高基于C++语言的界面开发效率。
再请参见图8,是本发明实施例提供的另一种界面布局装置的结构示意图,所述界面布局装置1可以包括上述图5对应实施例中的获取模块10、创建绑定模块20、计算同步模块30,进一步的,所述界面布局装置1还可以包括获取确定模块40、信息更新模块50、判断模块60、更新绑定模块70;其中,所述获取确定模块40、所述信息更新模块50、所述判断模块60以及所述更新绑定模块70可以在完成界面布局后执行,即在修改界面布局时执行。
所述获取确定模块40,用于当检测到对所述第一控件的参数进行修改时,获取至少一个具有修改关联关系的第一控件,并将所述至少一个具有修改关联关系的第一控件中的最上层的第一控件作为待修改第一控件;
具体的,在完成界面布局后,当检测到对所述第一控件的参数进行修改时,所述获取确定模块40可以获取至少一个具有修改关联关系的第一控件,所述至少一个具有修改关联关系的第一控件均为受到此次修改影响的第一控件。所述获取确定模块40开始对所述至少一个具有修改关联关系的第一控件进行遍历,并从所述至少一个具有修改关联关系的第一控件中的最上层的第一控件开始遍历。在遍历所述至少一个具有修改关联关系的第一控件中的最上层的第一控件时,所述获取确定模块40可以先将所述至少一个具有修改关联关系的第一控件中的最上层的第一控件作为待修改第一控件。
所述信息更新模块50,用于更新所述待修改第一控件的布局信息;
具体的,所述信息更新模块50可以根据所修改的参数更新所述待修改第一控件的布局信息,即重新计算所述待修改第一控件的布局信息。
所述判断模块60,用于判断所述待修改第一控件是否绑定有所述第二控件;
所述更新绑定模块70,用于若所述判断模块60判断为是,则将所述待修改第一控件的更新后的布局信息同步到已绑定的所述第二控件中,并将下一个未更新且具有修改关联关系的第一控件作为待修改第一控件,并返回所述信息更新模块50进行布局信息更新处理,直至所述至少一个具有修改关联关系的第一控件均已被更新;
具体的,若所述判断模块60判断为是,则所述更新绑定模块70将所述待修改第一控件的更新后的布局信息同步到已绑定的所述第二控件中,并将下一个未更新且具有修改关联关系的第一控件作为待修改第一控件,并返回所述信息更新模块50进行布局信息更新处理,即由所述信息更新模块50和所述判断模块60重复执行对应操作,为未更新且具有修改关联关系的第一控件逐一更新对应的布局信息,直至所述至少一个具有修改关联关系的第一控件均已被更新。
所述获取确定模块40,还用于若所述判断模块60判断为否,则将下一个未更新且具有修改关联关系的第一控件作为待修改第一控件,并返回所述信息更新模块50进行布局信息更新处理,直至所述至少一个具有修改关联关系的第一控件均已被更新;
具体的,若所述判断模块60判断为否,则所述获取确定模块40将下一个未更新且具有修改关联关系的第一控件作为待修改第一控件,并返回所述信息更新模块50进行布局信息更新处理,即由所述信息更新模块50和所述判断模块60重复执行对应操作,为未更新且具有修改关联关系的第一控件逐一更新对应的布局信息,直至所述至少一个具有修改关联关系的第一控件均已被更新。
本发明实施例在检测到对所述第一控件的参数进行修改时,可以通过获取至少一个具有修改关联关系的第一控件,以对至少一个具有修改关联关系的第一控件的布局信息进行更新,并将更新后的布局信息同步到所绑定的第二控件,由于在参数被修改后,可以同步更新对应的第二控件,所以使得在修改界面布局时也可以具有方便、快捷、灵活等优点,进一步提高基于C++语言的界面开发效率。
请参见图9,是本发明实施例提供的又一种界面布局装置的结构示意图。如图9所示,所述界面布局装置1000可以包括:至少一个处理器1001,例如CPU,至少一个网络接口1004,用户接口1003,存储器1005,至少一个通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。其中,用户接口1003可以包括显示屏(Display)、键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。存储器1005可选的还可以是至少一个位于远离前述处理器1001的存储装置。如图9所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及设备控制应用程序。
在图9所示的界面布局装置1000中,用户接口1003主要用于为用户提供输入的接口,获取用户输出的数据;而处理器1001可以用于调用存储器1005中存储的设备控制应用程序,并具体执行以下步骤:
获取基于WPF的界面布局描述文件,所述界面布局描述文件包括至少一个WPF控件中各WPF控件的布局参数;
创建与所述各WPF控件分别对应的基于目标语言且用于计算布局信息的第一控件,并将所述各WPF控件的布局参数分别添加到对应的所述第一控件,并将所述第一控件与对应的基于目标语言且用于显示的第二控件进行绑定;
根据所述第一控件中的布局参数计算所述第一控件的布局信息,并将所述第一控件的布局信息同步到已绑定的所述第二控件中,以完成界面布局。
在一个实施例中,所述界面布局描述文件还包括所述各WPF控件的标识参数;所述处理器1001在执行创建与所述各WPF控件分别对应的基于目标语言且用于计算布局信息的第一控件,并将所述各WPF控件的布局参数分别添加到对应的所述第一控件,并将所述第一控件与对应的基于目标语言且用于显示的第二控件进行绑定时,具体执行以下步骤:
创建与所述各WPF控件分别对应的基于目标语言且用于计算布局信息的第一控件,并将所述各WPF控件的布局参数和标识参数分别添加到对应的所述第一控件,并将所述标识参数不为空的第一控件与对应的基于目标语言且用于显示的第二控件进行绑定。
在一个实施例中,所述处理器1001在执行根据所述第一控件中的布局参数计算所述第一控件的布局信息,并将所述第一控件的布局信息同步到已绑定的所述第二控件中时,具体执行以下步骤:
根据所述第一控件中的布局参数计算所述第一控件的布局信息,并将所述标识参数不为空的第一控件的布局信息同步到已绑定的所述第二控件中。
在一个实施例中,所述处理器1001在执行创建与所述各WPF控件分别对应的基于目标语言且用于计算布局信息的第一控件,并将所述各WPF控件的布局参数和标识参数分别添加到对应的所述第一控件,并将所述标识参数不为空的第一控件与对应的基于目标语言且用于显示的第二控件进行绑定时,具体执行以下步骤:
将所述界面布局描述文件中最上层的WPF控件作为目标WPF控件;
创建与所述目标WPF控件对应的基于目标语言且用于计算布局信息的第一控件,并将所述目标WPF控件的布局参数和标识参数分别添加到对应的所述第一控件;
判断所述第一控件的标识参数是否为空;
若判断为是,则将下一个未处理的WPF控件作为目标WPF控件,并返回执行上述的控件创建步骤,直至所述界面布局描述文件中不存在未处理的WPF控件;
若判断为否,则将所述第一控件与对应的基于目标语言且用于显示的第二控件进行绑定,并将下一个未处理的WPF控件作为目标WPF控件,并返回执行上述的控件创建步骤,直至所述界面布局描述文件中不存在未处理的WPF控件。
在一个实施例中,所述处理器1001在执行根据所述第一控件中的布局参数计算所述第一控件的布局信息,并将所述标识参数不为空的第一控件的布局信息同步到已绑定的所述第二控件中时,具体执行以下步骤:
将所述界面布局描述文件中最上层的WPF控件对应的第一控件作为目标第一控件;
根据所述目标第一控件中的布局参数计算所述目标第一控件的布局信息;
判断所述目标第一控件是否绑定有所述第二控件;
若判断为是,则将所述目标第一控件的布局信息同步到已绑定的所述第二控件中,并将下一个未计算的第一控件作为目标第一控件,并返回执行上述的布局信息计算步骤,直至计算出所有第一控件的布局信息;
若判断为否,则将下一个未计算的第一控件作为目标第一控件,并返回执行上述的布局信息计算步骤,直至计算出所有第一控件的布局信息。
在一个实施例中,所述处理器1001在执行根据所述第一控件中的布局参数计算所述第一控件的布局信息,并将所述标识参数不为空的第一控件的布局信息同步到已绑定的所述第二控件中之后,还执行以下步骤:
当检测到对所述第一控件的参数进行修改时,获取至少一个具有修改关联关系的第一控件,并将所述至少一个具有修改关联关系的第一控件中的最上层的第一控件作为待修改第一控件;
更新所述待修改第一控件的布局信息;
判断所述待修改第一控件是否绑定有所述第二控件;
若判断为是,则将所述待修改第一控件的更新后的布局信息同步到已绑定的所述第二控件中,并将下一个未更新且具有修改关联关系的第一控件作为待修改第一控件,并返回上述的布局信息更新步骤,直至所述至少一个具有修改关联关系的第一控件均已被更新;
若判断为否,则将下一个未更新且具有修改关联关系的第一控件作为待修改第一控件,并返回上述的布局信息更新步骤,直至所述至少一个具有修改关联关系的第一控件均已被更新。
本发明实施例通过获取基于WPF的界面布局描述文件,并创建与界面布局描述文件中的各WPF控件分别对应的基于目标语言且用于计算布局信息的第一控件,再将各WPF控件的布局参数分别添加到对应的第一控件,并将第一控件与对应的基于目标语言且用于显示的第二控件进行绑定,再根据第一控件中的布局参数计算第一控件的布局信息,并将第一控件的布局信息同步到已绑定的第二控件中,使得可以将WPF的布局规则通过第一控件运用到基于C++语言的界面开发中,使得基于C++语言的界面开发也可以具有一套方便、快捷、灵活的界面设计和开发方案,以提高基于C++语言的界面开发效率。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。
Claims (12)
1.一种界面布局方法,其特征在于,包括:
获取基于WPF的界面布局描述文件,所述界面布局描述文件包括至少一个WPF控件中各WPF控件的布局参数;
创建与所述各WPF控件分别对应的基于目标语言且用于计算布局信息的第一控件,并将所述各WPF控件的布局参数分别添加到对应的所述第一控件,并将所述第一控件与对应的基于目标语言且用于显示的第二控件进行绑定;
根据所述第一控件中的布局参数计算所述第一控件的布局信息,并将所述第一控件的布局信息同步到已绑定的所述第二控件中,以完成界面布局。
2.如权利要求1所述的方法,其特征在于,所述界面布局描述文件还包括所述各WPF控件的标识参数;
所述创建与所述各WPF控件分别对应的基于目标语言且用于计算布局信息的第一控件,并将所述各WPF控件的布局参数分别添加到对应的所述第一控件,并将所述第一控件与对应的基于目标语言且用于显示的第二控件进行绑定,具体包括:
创建与所述各WPF控件分别对应的基于目标语言且用于计算布局信息的第一控件,并将所述各WPF控件的布局参数和标识参数分别添加到对应的所述第一控件,并将所述标识参数不为空的第一控件与对应的基于目标语言且用于显示的第二控件进行绑定。
3.如权利要求2所述的方法,其特征在于,所述根据所述第一控件中的布局参数计算所述第一控件的布局信息,并将所述第一控件的布局信息同步到已绑定的所述第二控件中,具体包括:
根据所述第一控件中的布局参数计算所述第一控件的布局信息,并将所述标识参数不为空的第一控件的布局信息同步到已绑定的所述第二控件中。
4.如权利要求3所述的方法,其特征在于,所述创建与所述各WPF控件分别对应的基于目标语言且用于计算布局信息的第一控件,并将所述各WPF控件的布局参数和标识参数分别添加到对应的所述第一控件,并将所述标识参数不为空的第一控件与对应的基于目标语言且用于显示的第二控件进行绑定,包括:
将所述界面布局描述文件中最上层的WPF控件作为目标WPF控件;
创建与所述目标WPF控件对应的基于目标语言且用于计算布局信息的第一控件,并将所述目标WPF控件的布局参数和标识参数分别添加到对应的所述第一控件;
判断所述第一控件的标识参数是否为空;
若判断为是,则将下一个未处理的WPF控件作为目标WPF控件,并返回执行上述的控件创建步骤,直至所述界面布局描述文件中不存在未处理的WPF控件;
若判断为否,则将所述第一控件与对应的基于目标语言且用于显示的第二控件进行绑定,并将下一个未处理的WPF控件作为目标WPF控件,并返回执行上述的控件创建步骤,直至所述界面布局描述文件中不存在未处理的WPF控件。
5.如权利要求4所述的方法,其特征在于,所述根据所述第一控件中的布局参数计算所述第一控件的布局信息,并将所述标识参数不为空的第一控件的布局信息同步到已绑定的所述第二控件中,包括:
将所述界面布局描述文件中最上层的WPF控件对应的第一控件作为目标第一控件;
根据所述目标第一控件中的布局参数计算所述目标第一控件的布局信息;
判断所述目标第一控件是否绑定有所述第二控件;
若判断为是,则将所述目标第一控件的布局信息同步到已绑定的所述第二控件中,并将下一个未计算的第一控件作为目标第一控件,并返回执行上述的布局信息计算步骤,直至计算出所有第一控件的布局信息;
若判断为否,则将下一个未计算的第一控件作为目标第一控件,并返回执行上述的布局信息计算步骤,直至计算出所有第一控件的布局信息。
6.如权利要求3所述的方法,其特征在于,在所述根据所述第一控件中的布局参数计算所述第一控件的布局信息,并将所述标识参数不为空的第一控件的布局信息同步到已绑定的所述第二控件中的步骤之后,还包括:
当检测到对所述第一控件的参数进行修改时,获取至少一个具有修改关联关系的第一控件,并将所述至少一个具有修改关联关系的第一控件中的最上层的第一控件作为待修改第一控件;
更新所述待修改第一控件的布局信息;
判断所述待修改第一控件是否绑定有所述第二控件;
若判断为是,则将所述待修改第一控件的更新后的布局信息同步到已绑定的所述第二控件中,并将下一个未更新且具有修改关联关系的第一控件作为待修改第一控件,并返回上述的布局信息更新步骤,直至所述至少一个具有修改关联关系的第一控件均已被更新;
若判断为否,则将下一个未更新且具有修改关联关系的第一控件作为待修改第一控件,并返回上述的布局信息更新步骤,直至所述至少一个具有修改关联关系的第一控件均已被更新。
7.一种界面布局装置,其特征在于,包括:
获取模块,用于获取基于WPF的界面布局描述文件,所述界面布局描述文件包括至少一个WPF控件中各WPF控件的布局参数;
创建绑定模块,用于创建与所述各WPF控件分别对应的基于目标语言且用于计算布局信息的第一控件,并将所述各WPF控件的布局参数分别添加到对应的所述第一控件,并将所述第一控件与对应的基于目标语言且用于显示的第二控件进行绑定;
计算同步模块,用于根据所述第一控件中的布局参数计算所述第一控件的布局信息,并将所述第一控件的布局信息同步到已绑定的所述第二控件中,以完成界面布局。
8.如权利要求7所述的装置,其特征在于,所述界面布局描述文件还包括所述各WPF控件的标识参数;
所述创建绑定模块,具体用于创建与所述各WPF控件分别对应的基于目标语言且用于计算布局信息的第一控件,并将所述各WPF控件的布局参数和标识参数分别添加到对应的所述第一控件,并将所述标识参数不为空的第一控件与对应的基于目标语言且用于显示的第二控件进行绑定。
9.如权利要求8所述的装置,其特征在于,
所述计算同步模块,具体用于根据所述第一控件中的布局参数计算所述第一控件的布局信息,并将所述标识参数不为空的第一控件的布局信息同步到已绑定的所述第二控件中。
10.如权利要求9所述的装置,其特征在于,所述创建绑定模块包括:
第一确定单元,用于将所述界面布局描述文件中最上层的WPF控件作为目标WPF控件;
创建添加单元,用于创建与所述目标WPF控件对应的基于目标语言且用于计算布局信息的第一控件,并将所述目标WPF控件的布局参数和标识参数分别添加到对应的所述第一控件;
第一判断单元,用于判断所述第一控件的标识参数是否为空;
所述第一确定单元,还用于若所述第一判断单元判断为是,则将下一个未处理的WPF控件作为目标WPF控件,并返回所述创建添加单元进行控件创建处理,直至所述界面布局描述文件中不存在未处理的WPF控件;
绑定单元,用于若所述第一判断单元判断为否,则将所述第一控件与对应的基于目标语言且用于显示的第二控件进行绑定,并将下一个未处理的WPF控件作为目标WPF控件,并返回所述创建添加单元进行控件创建处理,直至所述界面布局描述文件中不存在未处理的WPF控件。
11.如权利要求10所述的装置,其特征在于,所述计算同步模块包括:
第二确定单元,用于将所述界面布局描述文件中最上层的WPF控件对应的第一控件作为目标第一控件;
计算单元,用于根据所述目标第一控件中的布局参数计算所述目标第一控件的布局信息;
第二判断单元,用于判断所述目标第一控件是否绑定有所述第二控件;
所述第二确定单元,还用于若所述第二判断单元判断为否,则将下一个未计算的第一控件作为目标第一控件,并返回所述计算单元进行布局信息计算处理,直至计算出所有第一控件的布局信息;
同步单元,用于若所述第二判断单元判断为是,则将所述目标第一控件的布局信息同步到已绑定的所述第二控件中,并将下一个未计算的第一控件作为目标第一控件,并返回所述计算单元进行布局信息计算处理,直至计算出所有第一控件的布局信息。
12.如权利要求9所述的装置,其特征在于,还包括:
获取确定模块,用于当检测到对所述第一控件的参数进行修改时,获取至少一个具有修改关联关系的第一控件,并将所述至少一个具有修改关联关系的第一控件中的最上层的第一控件作为待修改第一控件;
信息更新模块,用于更新所述待修改第一控件的布局信息;
判断模块,用于判断所述待修改第一控件是否绑定有所述第二控件;
更新绑定模块,用于若所述判断模块判断为是,则将所述待修改第一控件的更新后的布局信息同步到已绑定的所述第二控件中,并将下一个未更新且具有修改关联关系的第一控件作为待修改第一控件,并返回所述信息更新模块进行布局信息更新处理,直至所述至少一个具有修改关联关系的第一控件均已被更新;
所述获取确定模块,还用于若所述判断模块判断为否,则将下一个未更新且具有修改关联关系的第一控件作为待修改第一控件,并返回所述信息更新模块进行布局信息更新处理,直至所述至少一个具有修改关联关系的第一控件均已被更新。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510609006.3A CN106547528B (zh) | 2015-09-22 | 2015-09-22 | 一种界面布局方法以及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510609006.3A CN106547528B (zh) | 2015-09-22 | 2015-09-22 | 一种界面布局方法以及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106547528A true CN106547528A (zh) | 2017-03-29 |
CN106547528B CN106547528B (zh) | 2020-07-14 |
Family
ID=58365437
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510609006.3A Active CN106547528B (zh) | 2015-09-22 | 2015-09-22 | 一种界面布局方法以及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106547528B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109542554A (zh) * | 2018-10-26 | 2019-03-29 | 金蝶软件(中国)有限公司 | 文档布局转换的方法、装置、计算机设备和存储介质 |
CN111552529A (zh) * | 2020-04-17 | 2020-08-18 | 南阳柯丽尔科技有限公司 | Ui适配方法、装置、计算机设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101699394A (zh) * | 2009-10-28 | 2010-04-28 | 金蝶软件(中国)有限公司 | 一种自动生成用户界面的方法及装置 |
US7895522B2 (en) * | 2001-09-28 | 2011-02-22 | Ntt Docomo, Inc. | Layout of platform specific graphical user interface widgets migrated between heterogeneous device platforms |
CN103034490A (zh) * | 2012-12-05 | 2013-04-10 | 上海创图网络科技发展有限公司 | 一种基于Managed C实现WPF窗体与GDI窗体消息互操作的方法 |
CN104239044A (zh) * | 2014-09-05 | 2014-12-24 | 北京航天自动控制研究所 | 一种图形用户界面动态生成方法 |
CN104679573A (zh) * | 2015-03-27 | 2015-06-03 | 厦门麦克玛视电子信息技术有限公司 | 一种wpf和c++的交互方法 |
-
2015
- 2015-09-22 CN CN201510609006.3A patent/CN106547528B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7895522B2 (en) * | 2001-09-28 | 2011-02-22 | Ntt Docomo, Inc. | Layout of platform specific graphical user interface widgets migrated between heterogeneous device platforms |
CN101699394A (zh) * | 2009-10-28 | 2010-04-28 | 金蝶软件(中国)有限公司 | 一种自动生成用户界面的方法及装置 |
CN103034490A (zh) * | 2012-12-05 | 2013-04-10 | 上海创图网络科技发展有限公司 | 一种基于Managed C实现WPF窗体与GDI窗体消息互操作的方法 |
CN104239044A (zh) * | 2014-09-05 | 2014-12-24 | 北京航天自动控制研究所 | 一种图形用户界面动态生成方法 |
CN104679573A (zh) * | 2015-03-27 | 2015-06-03 | 厦门麦克玛视电子信息技术有限公司 | 一种wpf和c++的交互方法 |
Non-Patent Citations (1)
Title |
---|
V2X222: "使用C++来开发WPF", 《CSDN-HTTPS://BLOG.CSDN.NET/V2X222/ARTICLE/DETAILS/6760096》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109542554A (zh) * | 2018-10-26 | 2019-03-29 | 金蝶软件(中国)有限公司 | 文档布局转换的方法、装置、计算机设备和存储介质 |
CN111552529A (zh) * | 2020-04-17 | 2020-08-18 | 南阳柯丽尔科技有限公司 | Ui适配方法、装置、计算机设备及存储介质 |
CN111552529B (zh) * | 2020-04-17 | 2023-03-14 | 南阳柯丽尔科技有限公司 | Ui适配方法、装置、计算机设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN106547528B (zh) | 2020-07-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9600275B2 (en) | Smart source code review system | |
US9501596B2 (en) | Graphical design verification environment generator | |
CN102667696B (zh) | 用于用户界面中的对象标识的系统与方法 | |
US20130144409A1 (en) | Control program generation device, control program generation program, and control program generation method | |
CN108427809A (zh) | 一种基于装配式建筑的属性赋值方法及装置 | |
US11914975B2 (en) | Customized software application template-based generator | |
CN106651996A (zh) | 文稿编辑工具中元素层级的管理方法及装置 | |
CN108089879A (zh) | 增量更新方法、设备及可编程设备 | |
KR101103787B1 (ko) | 그래픽 기반 로봇 프로그래밍 시스템 | |
CN106547528A (zh) | 一种界面布局方法以及装置 | |
CN111061478B (zh) | 一种页面表单修改方法、装置、设备及可读存储介质 | |
CN103377076A (zh) | 一种运行时调整任务执行计划的方法和系统 | |
CN102147797A (zh) | 一种内容管理系统中管理元素文件的方法及装置 | |
CN111506306A (zh) | 一种Ansible剧本编写方法、装置和电子设备 | |
CN115115787B (zh) | 一种基于DirectVR的二维图纸转3D模型方法 | |
CN106126056B (zh) | 一种基于PowerPoint的幻灯片自动创建方法及装置 | |
KR101704673B1 (ko) | 개방형bim을 기반으로 하는 건물 정보 파일과 구조 계산 정보의 연동 방법 | |
CN115098069A (zh) | 集成流水线建立方法、系统、电子设备及可读存储介质 | |
CN107656865A (zh) | 测试需求确定方法及装置 | |
JP4127318B2 (ja) | プログラム生成方法および装置 | |
US11516285B2 (en) | Cloud system realization apparatus and method, recording medium storing program for executing the same | |
JP2003076545A (ja) | プログラム開発支援装置 | |
US11822773B2 (en) | Systems and methods for generating and utilizing an interactive causal loop diagram using a causal loop designer | |
CN110263303A (zh) | 文本修改历史的追溯方法及装置 | |
JP3966355B2 (ja) | プログラム生成方法および装置 |
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 | ||
TR01 | Transfer of patent right |
Effective date of registration: 20221111 Address after: 1402, Floor 14, Block A, Haina Baichuan Headquarters Building, No. 6, Baoxing Road, Haibin Community, Xin'an Street, Bao'an District, Shenzhen, Guangdong 518133 Patentee after: Shenzhen Yayue Technology Co.,Ltd. Address before: 2, 518000, East 403 room, SEG science and Technology Park, Zhenxing Road, Shenzhen, Guangdong, Futian District Patentee before: TENCENT TECHNOLOGY (SHENZHEN) Co.,Ltd. |
|
TR01 | Transfer of patent right |