一种基于Qt地面站的智能界面的制作方法_2

文档序号:9708071阅读:来源:国知局
下面步骤,
第三步、建立一个用于存储参数和树形图中的子节点映射关系的容器,当参数编辑完成时,把所编辑的参数类指针及树中的参数节点放入容器中,
第四步、建立界面参数显示区与容器的对应关系:根据树节点在容器中查找参数,然后将参数更新显示到参数编辑区,这里的更新显示就是用继承于Qt widget的传统显示函数, 第五步、上述容器做为const引用传入合法性检测类、界面生成类,XML类中,分别通过一个合法性检测函数、界面生成函数、XML序列化函数、XML反序列化函数控制文件的生成及读写。,
所述步骤C的合法性检测类步骤是指:建立一个类通过构造函数传入步骤A中建立的容器及树,通过合法性检测函数检测接口文件长度是否合法,
所述步骤D的界面生成类步骤是指:建立一个类,通过构造函数传入步骤A中建立的容器,通过一个界面生成函数控制界面的自动生成,
所述步骤E的代码生成类步骤是指:建立一个类,通过构造函数传入步骤A中建立的容器及树生成函数创建接口控制文件所对应的结构体。
[0023]实施例3:
一种基于Qt地面站的智能界面,本发明能够将基于Qt地面站软件的开发效率提升3倍,简化软件后期的更改及维护,降低开发成本。
[0024]本发明公开了一种基于Qt地面站的智能界面,其特征在于,包括以下步骤:
A.用于接口参数的编辑,参数类指针的存储以及控制界面、代码、xml文件生成的客户端类建立步骤;
B.用于存储参数类型、显示方式、位域、中文名称、英文名称,参数说明等属性的参数类步骤;
C.用于对录入接口控制文件的合法性检测的合法性检测类步骤;
D.用于对生成界面控制的界面生成类步骤;
E.用于对生成结构体代码控制的代码生成类步骤;
F.用于控制接口文件读写的XML类步骤;
首先进行步骤A,其次是步骤B,其次是步骤C,其次是步骤D,其次是步骤E,最后是步骤
F。其中步骤C用于保证步骤D、E、F产生结果的合法性。
[0025]所述客户端类建立步骤包括:
第一步、建立一个组合了参数类、合法性检测类、界面生成类,XML类的客户端类第二步、客户端类包含了一个用于编辑接口文件的Ui类,此处的Ui类是一个已经用Qt设计师编辑好的界面类,此界面类的建立包含下面步骤
第三步、建立一个用于存储参数和树形图中的子节点映射关系的容器,当参数编辑完成时,把所编辑的参数类指针及树中的参数节点放入容器中。
[0026]第四步、建立界面参数显示区与容器的对应关系:根据树节点在容器中查找参数,然后将参数更新显示到参数编辑区,这里的更新显示就是用继承于Qt widget的传统显示函数。
[0027]第五步、上述容器做为const引用传入合法性检测类、界面生成类,XML类中,分别通过一个合法性检测函数、界面生成函数、XML序列化函数、XML反序列化函数控制文件的生成及读写,上述函数均为代理模式,具体实现方式见后面步骤。
[0028]所述参数类步骤是指:
建立一个类,其中包含的成员有存储参数类型,例如int、unsigned int、float、
double、枚举......等,有显不方式,例如灯、文本、表格......等,有位域,当所定义的参数不占满整个字节时就需要设置其位域值,还有参数中文名称、英文名称及参数属性。
[0029]所述合法性检测类步骤包括:
建立一个类,通过构造函数传入步骤A中建立的容器及树,通过一个合法性检测函数检测接口文件长度是否合法,其判定步骤是:
步骤一、通过递归得到树的一个非叶节点:
如果为幅用节点:
第一步、逐一取出幅用节点Ul及与其平级的节点U2、U3……
第二步、将上一步骤中取出的节点中存储的幅用内存长度与该节点的上一级物理节点Pyp中存储的内存长度作比较,如果相等则继续第一步,否则,返回不合法信息及该节点的幅用块号。
[0030]第三步、如果平级节点都没有返回不合法信息则跳转到步骤一继续递归非叶节点。
[0031 ]如果节点为物理节点:
第一步、取出物理节点Py。
[0032]第二步、如果其下一级节点是幅用节点Ul,则转到步骤一中I。
[0033]第三步、如果其下一级节点是参数节点P则计算Py下所有参数节点P的位域和Σ
P1.bito
[0034]第四步、如果其下一级是物理节点Pys:
计算Py下所有物理节点PyS存储的长度和SPys1.length 计算出Py下属节点的总长度ΣP1.bit+SPys1.length。
[0035]比较物理节点Py存储的长度Py.length与总长度ΣP1.bit+SPys1.length之间的大小关系,如果相等,继续递归,如果不相等,返回不合法信息,并且,返回当前物理块的块号。
[0036]所述界面生成类步骤是指:
建立一个类,通过构造函数传入步骤A中建立的容器,通过一个界面生成函数控制界面的自动生成,其形成步骤是:
步骤一、通过迭代器遍历容器中的参数类,得到参数对象,此处的迭代器指的是c++语言里面的一种遍历容器的工具。
[0037]步骤二、根据步骤一中得到的参数对象的显示方式及英文名称用Qt的Ui文件格式写入xml文件。
[0038]步骤三、将上述xml文件保存为*.Ui类型的文件,而这个文件就是Qt的界面文件。
[0039]所述代码生成类步骤是指:
建立一个类,通过构造函数传入步骤A中建立的容器及树,通过一个代码生成函数创建接口控制文件所对应的结构体,其形成步骤是:
步骤一、通过递归得到树的节点。
[°04°] 步骤二、如果节点是物理节点则表明是一个结构体的开始,将“typedef struct{”输入*.h文件中,然后再在这层递归完成时输入“}+物理块名。
[0〇41 ]步骤三、如果节点是逻辑节点则表明是一个联合体的开始,将“typedef un1n{”输入*.h文件中,然后再在这层递归完成时输入“}+逻辑块名。
[0042]步骤四、如果节点是参数节点则表明是变量的开始,根据参数节点查找容器中的参数类,如果参数是位域量,在*.h中输入“参数类型+参数英文名+:+位域+;+//参数说明”,如果参数是一般量,在*.h中输入“参数类型+参数英文名+;+//参数说明”。
[0043]所述XML类步骤是指建立一个类,通过构造函数传入步骤A中建立的容器及树: 步骤一、通过一个写函数控制接口文件转换为xml文件,其形成步骤是:
递归树形结构的每一个节点作为xml的元素节点。
[0044]如果节点是参数节点,则在容器中查找到对应的参数类,将参数类的每一个成员和成员值都添加为此元素的属性和属性值,并且,添加元素标识属性“参数”。
[0045]如果节点是物理节点或者逻辑节点,则取出存储在节点中的块号、长度,添加为此元素的属性,并且添加元素标识属性为“物理块”或者“逻辑块”。
[0046]步骤二、通过一个读函数控制xml文件转换为接口文件,其形成步骤是:
递归xml文件,得到任意元素,通过元素标识属性得到要建立的树节点类型。
[0047]如果是“物理块”,则建立物理节点,并且将块号元素,长度元素的属性值填入节点中存储。
[0048]如果是“逻辑块”,方法同上,如果是“参数”,则新建一块存储参数类的内存,将节点的属性对应填入参数内存中,然后将节点与参数存储到容器中。
[0049]实施例4:
一种基于Qt地面站的智能界
当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1