本发明涉及qt界面应用程序开发领域,尤其涉及一种基于html文件格式的qt界面及样式自动生成方法及系统。
背景技术:
1、qt界面是一般在qt应用程序开发过程中采用基于软件原型设计的用户界面及交互描述方案。软件原型设计是针对特定界面设计问题,通过总结前人设计经验,抽象出的软件界面及用户交互模型,同时提供相关的自动化工具解析并生成符合使用风格的具体用户界面。软件开发者可以从更宏观的角度把握整个用户界面的设计,而不是拘泥在具体的控件选择和设计等细节中,能够提高界面开发效率。
2、在基于软件界面设计原型开发qt应用程序时,qt界面布局及样式调试占据了程序开发的主要时间和精力。目前的qt界面开发过程中繁琐的界面布局及界面样式调试,极大的影响了qt界面应用软件的开发效率,因此,缺乏一种从原型设计软件导出的中间文件直接生成qt界面及样式的方法和工具。
技术实现思路
1、有鉴于此,本发明提供一种基于html文件格式的qt界面及样式自动生成方法及系统,旨在解决现有qt界面应用软件的开发存在的效率低的技术问题。
2、为解决以上技术问题,本发明的技术方案为提供一种基于html文件格式的qt界面及样式自动生成方法,包括:
3、获取界面原型设计软件导出的html文件数据及其对应的资源文件数据;
4、基于所述html文件数据及其对应的资源文件数据,对所述html文件及其文件关联关系进行解析,得到预编译生成界面;
5、对预编译生成界面中的图元、图元属性、图元与图元之间的逻辑关系进行类文件解析,得到界面图元列表数据;
6、构建qt界面的图元与控件类型的映射关系,得到图元与控件映射关系数据;
7、基于所述预编译生成界面、界面图元列表数据和所述图元与控件映射关系数据,自动生成qt界面文件和qt界面样式文件。
8、作为一种实施方式,所述基于所述html文件数据及其对应的资源文件数据,对所述html文件及其文件关联关系进行解析,得到预编译生成界面,包括:
9、基于所述html文件数据及其对应的资源文件数据,生成界面文件对象树数据、css对象树数据、资源文件对象树数据,并分别解析所述界面文件对象树数据、css对象树数据、资源文件对象树数据,得到预编译生成界面。
10、作为一种实施方式,生成界面文件对象树数据,包括:
11、根据html文件名生成界面文件对象树,一个html文件对应对象树中的一个节点,其中,节点名称在解析域名中具备全局唯一性。
12、作为一种实施方式,生成css对象树数据,包括:
13、基于导出文件中存在每个界面名称对应的文件夹的files文件夹,生成css对象树数据,每个文件对应css对象树中的一个节点;
14、解析所述每个界面名称对应的文件夹中存放的styles.css文件,并生成css对象树节点的子节点数据;
15、调用css代码解析器读取所述子节点数据,并将其转换成ast数据,其中,节点名称、子节点名称在解析域名中具备全局唯一性。
16、作为一种实施方式,生成资源文件对象树数据,包括:
17、基于导出文件中的resources/images文件夹,生成资源文件对象树数据,每个文件对应资源文件对象树的一个节点;
18、通过节点名称关联资源文件,得到节点名称与对应的资源文件之间的唯一对应关系,其中,节点名称在解析域名中具备全局唯一性。
19、作为一种实施方式,所述对预编译生成界面中的图元、图元属性、图元与图元之间的逻辑关系进行类文件解析,得到界面图元列表数据之后,还包括:
20、将图元逻辑关系保存在key-value数据库中。
21、作为一种实施方式,所述构建qt界面的图元与控件类型的映射关系,得到图元与控件映射关系数据,包括:
22、基于软件功能需求指定图元的控件类型属性,所述控件类型属性包括qt控件和用户自定义控件;
23、根据软件功能需求对所述界面文件对象树数据、css对象树数据、资源文件对象树数据和图元的名称进行修正,并将修正后的名称更新在所述key-value数据库中;
24、构建qt界面的图元与指定图元的控件类型的映射关系,得到图元与指定图元的控件映射关系数据。
25、作为一种实施方式,所述自动生成qt界面文件的方法包括:
26、遍历保存有图元逻辑关系的所述key-value数据库,加载qt界面及c++代码生成模板资源数据,根据软件功能需求设置的控件类型和类名生成qt界面ui文件及对应的c++界面类文件。
27、作为一种实施方式,所述自动生成qt界面样式文件的方法包括:
28、遍历保存有图元逻辑关系的所述key-value数据库,获取图元名称;
29、根据所述图元名称在css对象树查找对应属性的css属性及css属性值;
30、将css属性及css属性值转换为qss属性及qss属性值,生成qt界面样式qss文件。
31、相应的,本发明还提供一种基于html文件格式的qt界面及样式自动生成系统,包括:
32、文件数据获取模块,用于获取界面原型设计软件导出的html文件数据及其对应的资源文件数据;
33、关联关系解析模块,用于基于所述html文件数据及其对应的资源文件数据,对所述html文件及其文件关联关系进行解析,得到预编译生成界面;
34、图元关系映射模块,用于对预编译生成界面中的图元、图元属性、图元与图元之间的逻辑关系进行类文件解析,得到界面图元列表数据;
35、qt界面预编辑模块,用于构建qt界面的图元与控件类型的映射关系,得到图元与控件映射关系数据;
36、qt界面文件生成模块,用于基于所述预编译生成界面、界面图元列表数据和所述图元与控件映射关系数据,自动生成qt界面文件;
37、qt界面样式文件生成模块,用于基于所述预编译生成界面、界面图元列表数据和所述图元与控件映射关系数据,自动生成qt界面样式文件。
38、本发明的首要改进之处在于:采用一种基于html文件格式的qt界面及样式自动生成系统,获取界面原型设计软件导出的html文件数据及其对应的资源文件数据;基于所述html文件数据及其对应的资源文件数据,对所述html文件及其文件关联关系进行解析,得到预编译生成界面;对预编译生成界面中的图元、图元属性、图元与图元之间的逻辑关系进行类文件解析,得到界面图元列表数据;构建qt界面的图元与控件类型的映射关系,得到图元与控件映射关系数据;基于所述预编译生成界面、界面图元列表数据和所述图元与控件映射关系数据,自动生成qt界面文件和qt界面样式文件。通过对原型设计软件的导出的html格式文件的自动解析,动态生成qt界面文件和qt界面样式文件,减少了繁琐的界面布局及界面样式调试,极大的提高了qt界面应用软件的开发效率。