本申请主要涉及嵌入式设备的,尤其涉及一种应用于嵌入式linux设备的低代码实现方法和应用该方法的装置。
背景技术:
1、低代码工具或平台是一种可视化开发工具,开发者只需要通过填表配置或拖拽生成前端组件的方式,即可完成后台管理系统的快速搭建,有利于应对多样化的客户需求,解放大量劳动力。目前市面上的低代码工具包括web平台,windows平台,linux平台等。然而,这些平台都只能生成当前平台的程序产物,比如在web平台的低代码工具就只能生成html/h5的产物,无法生成跨端的产物。例如在web端设计好界面后,无法生成在嵌入式linux端运行的产物。
2、目前很多低代码平台都是基于web平台,而基于linux的嵌入式设备同样存在客户需求多样化的问题,迫切需要一种能为嵌入式linux平台服务的低代码实现方案。
技术实现思路
1、本申请要解决的技术问题是目前缺少基于linux嵌入式设备的低代码实现方法。
2、为解决上述技术问题,本申请提供了一种应用于嵌入式linux设备的低代码实现方法,包括:
3、步骤s1:采用web可视化平台进行界面设计并生成json文件,所述json文件包括界面的多个组件数据和使用javascript实现的js逻辑代码;
4、步骤s2:生成qml程序,所述qml程序在所述嵌入式linux设备上运行时,用于加载所述json文件,并解析所述json文件中的javascript交互逻辑;
5、步骤s3:将所述json文件和所述qml程序设置到所述嵌入式linux设备中。
6、在本申请的一实施例中,所述步骤s2中的生成qml程序的过程包括:
7、步骤s21:创建window组件,在所述window组件内部设置加载所述json文件的语句;
8、步骤s22:读取所述json文件,获得组件树,所述组件树包括所述多个组件数据,其中,每个所述组件数据中包括至少一个子组件数据;
9、步骤s23:采用递归函数对所述多个组件数据进行遍历处理,动态创建组件。
10、在本申请的一实施例中,所述步骤s23包括:
11、步骤s231:判断当前的组件数据是否为容器,若判断结果为是,则执行步骤s232;
12、步骤s232:运行容器处理函数;
13、步骤s233:动态创建容器组件,所述容器组件对应于当前的组件数据;
14、步骤s234:设置所述容器组件的属性,所述容器组件的属性包括方向、对齐、样式中的任意个。
15、在本申请的一实施例中,在所述步骤s231中,若所述判断结果为否,则执行下述步骤:
16、步骤s241:判断当前的组件数据是否为基础组件,若判断结果为是,则执行步骤s242,若判断结果为否,则异常退出;
17、步骤s242:运行基础组件处理函数;
18、步骤s243:动态创建基础组件,所述基础组件对应于当前的组件数据;
19、步骤s244:设置所述基础组件的属性。
20、在本申请的一实施例中,所述步骤s244之后还包括:
21、步骤s2441:判断所述基础组件的属性的属性值是否为变量,若判断结果为是,则执行步骤s2442;
22、步骤s2442:动态创建item组件;
23、步骤s2443:在所述item组件中增加变量value;
24、步骤s2444:使用qt.binding将所述属性值与所述变量value绑定;
25、步骤s2445:将所述item组件加入映射关系中,所述item组件的关键词是所述变量value的变量名,所述映射关系包括所述变量名和所述组件数据之间的对应关系;
26、步骤s2446:根据所述映射关系在所述步骤s244中设置所述基础组件的属性,其中,当所述变量名改变时,与所述变量value绑定的所述基础组件的属性值自动改变。
27、在本申请的一实施例中,在所述步骤s2441中,若判断结果为否,则执行下述步骤:
28、步骤s2451:设置所述属性值;
29、步骤s2452:为所述基础组件设置事件;
30、步骤s2453:使用connect()函数绑定所述事件,其中,()里包括箭头函数,用于在所述事件发生时,在所述箭头函数里访问所述动态创建组件;
31、步骤s2454:使用eval()执行所述json文件里面的所述js逻辑代码。
32、在本申请的一实施例中,在步骤s21中,创建window组件的方式是静态创建,所述window组件为顶层窗口,不需要设置属性。
33、在本申请的一实施例中,在步骤s21中,加载所述json文件的语句包括component.oncompleted:{},其中,{}内包括所述json文件。
34、在本申请的一实施例中,在步骤s21之后,还包括:
35、步骤s211:在所述json文件中获得宽高属性,并根据所述宽高属性设置所述window组件的宽高。
36、本申请为解决上述技术问题还提出一种应用于嵌入式linux设备的低代码实现装置,包括:存储器,用于存储可由处理器执行的指令;处理器,用于执行所述指令以实现如上所述的方法。
37、本申请为解决上述技术问题还提出一种存储有计算机程序代码的计算机可读介质,所述计算机程序代码在由处理器执行时实现如上所述的方法。
38、根据本申请的低代码实现方法和装置,可以在web端可视化平台通过拖拉组件完成界面设计后,输出一份json格式的文件,该文件记录了界面组件的属性数据和使用javascript实现的逻辑代码,并且在web服务器构建端使用该json文件和预先写好的qml程序,一起打包成可以在嵌入式linux端设备运行的程序,当预先写好的qml程序在设备端运行的时候,加载json文件,采用递归算法分析json文件里面的组件数据,进行组件映射并动态渲染,再使用qml内置的js解析引擎解析json文件里面的javascript交互逻辑。本申请只要使用web低代码平台按照规定的协议生成json文件,就可以最终生成嵌入式linux端的图形界面程序。
1.一种应用于嵌入式linux设备的低代码实现方法,其特征在于,包括:
2.如权利要求1所述的低代码实现方法,其特征在于,所述步骤s2中的生成qml程序的过程包括:
3.如权利要求2所述的低代码实现方法,其特征在于,所述步骤s23包括:
4.如权利要求3所述的低代码实现方法,其特征在于,在所述步骤s231中,若所述判断结果为否,则执行下述步骤:
5.如权利要求4所述的低代码实现方法,其特征在于,所述步骤s244之后还包括:
6.如权利要求5所述的低代码实现方法,其特征在于,在所述步骤s2441中,若判断结果为否,则执行下述步骤:
7.如权利要求2所述的低代码实现方法,其特征在于,在步骤s21中,创建window组件的方式是静态创建,所述window组件为顶层窗口,不需要设置属性。
8.如权利要求2所述的低代码实现方法,其特征在于,在步骤s21中,加载所述json文件的语句包括component.oncompleted:{},其中,{}内包括所述json文件。
9.如权利要求2所述的低代码实现方法,其特征在于,在步骤s21之后,还包括:
10.一种应用于嵌入式linux设备的低代码实现装置,包括:
11.一种存储有计算机程序代码的计算机可读介质,所述计算机程序代码在由处理器执行时实现如权利要求1-9任一项所述的方法。