1.一种三维图形绘制的方法,包括如下步骤:
利用qt平台的原生控件进行三维图形绘制;
对每个原生控件创建一个非原生控件分身;
设定所述非原生控件分身,使所述原生控件的非原生控件分身在尺寸大小和位置上分别与原生控件同步;
所述原生控件的非原生分身配合其他非原生控件,接受qt布局管理,完成三维图形绘制。
2.如权利要求1所述的方法,其中:
设定所述非原生控件分身,使所述原生控件的非原生分身在大小上与原生控件同步的步骤中,在非原生控件分身的尺寸大小发生变化时,将原生控件的尺寸大小也设置为所述分身的大小。
3.如权利要求1所述的方法,其中:
设定所述非原生控件分身,使所述原生控件的非原生控件分身在位置上与原生控件同步的步骤中,在所述非原生控件分身(105)相对于原生控件(101)的父结点的位置发生变化时,将所述原生控件(101)设置为与所述非原生控件分身(105)同样的位置。
4.如权利要求3所述的方法,其中:
设定所述非原生控件分身,使所述原生控件的非原生分身在位置上与原生控件同步的步骤中还包括:
设置qt事件过滤器(205),用于监测所述非原生控件分身(105)及其所有非原生控件祖先结点,并分别对不同的事件做出不同的处理:
针对位置变化事件(qevent::move):同步设置所述原生控件(101)的位置;
针对父结点即将改变事件(qevent::parentabouttochange):解除所有非原生控件祖先结点对该事件过滤器(205)的关联;
针对父结点已改变事件(qevent::parentchange):对所有新的非原生控件祖先结点关联该事件过滤器(205)。
5.一种三维图形绘制的装置,包括下列装置:
绘制模块,利用qt平台的原生控件进行三维图形绘制;
分身创建模块,对每个原生控件创建一个非原生控件分身;
同步模块,设定所述非原生控件分身,使所述原生控件的非原生控件分身在尺寸大小和位置上分别与原生控件同步;
配合模块,所述原生控件的非原生分身配合其他非原生控件,接受qt布局管理,完成三维图形绘制。
6.如权利要求5所述的装置,其中:
同步模块中,在非原生控件分身的尺寸大小发生变化时,将原生控件的尺寸大小也设置为所述分身的大小。
7.如权利要求5所述的装置,其中:
同步模块中,在所述非原生控件分身(105)相对于原生控件(101)的父结点的位置发生变化时,将所述原生控件(101)设置为与所述非原生控件分身(105)同样的位置。
8.如权利要求7所述的装置,还包括:
qt事件过滤器(205)模块,用于监测所述非原生控件分身(105)及其所有非原生控件祖先结点,并分别对不同的事件做出不同的处理:
针对位置变化事件(qevent::move):同步设置所述原生控件(101)的位置;
针对父结点即将改变事件(qevent::parentabouttochange):解除所有非原生控件祖先结点对该事件过滤器(205)的关联;
针对父结点已改变事件(qevent::parentchange):对所有新的非原生控件祖先结点关联该事件过滤器(205)。
9.一种qt界面布局的方法,包括如下步骤:
对每个原生控件创建一个非原生控件分身;
设定所述非原生控件分身,使所述原生控件的非原生控件分身在尺寸大小和位置上分别与原生控件同步;
所述原生控件的非原生分身配合其他非原生控件,完成qt界面管理。
10.如权利要求9所述的方法,其中:
设定所述非原生控件分身,使所述原生控件的非原生分身在大小上与原生控件同步的步骤中,在非原生控件分身的尺寸大小发生变化时,将原生控件的尺寸大小也设置为所述分身的大小。
11.如权利要求9所述的方法,其中:
设定所述非原生控件分身,使所述原生控件的非原生控件分身在位置上与原生控件同步的步骤中,在所述非原生控件分身(105)相对于原生控件(101)的父结点的位置发生变化时,将所述原生控件(101)设置为与所述非原生控件分身(105)同样的位置。
12.如权利要求11所述的方法,其中:
设定所述非原生控件分身,使所述原生控件的非原生分身在位置上与原生控件同步的步骤中还包括:
设置qt事件过滤器(205),用于监测所述非原生控件分身(105)及其所有非原生控件祖先结点,并分别对不同的事件做出不同的处理:
针对位置变化事件(qevent::move):同步设置所述原生控件(101)的位置;
针对父结点即将改变事件(qevent::parentabouttochange):解除所有非原生控件祖先结点对该事件过滤器(205)的关联;
针对父结点已改变事件(qevent::parentchange):对所有新的非原生控件祖先结点关联该事件过滤器(205)。