嵌入式图形用户界面框架系统及其程序管理方法

文档序号:9417064阅读:342来源:国知局
嵌入式图形用户界面框架系统及其程序管理方法
【技术领域】
[0001]本发明属于图形用户界面领域,尤其涉及一种嵌入式图形用户界面框架系统及其程序管理方法。
【背景技术】
[0002]当给嵌入式设备开发程序时,在面对如何实现⑶I (Graphical User Interface,图像用户界面)显示的问题时,对于简单的界面通过直接操作FrameBuffer (帧缓冲)就可以解决问题,但需要做比较复杂的界面和效果时,直接操作FrameBuffer就变得极其困难,再加上各个界面之间需要进行功能交互,这种方式就会失去控制。
[0003]现有技术采用Qt框架来解决上述问题,但是采用Qt框架在嵌入平台上存在着各种瓶颈:
编译后可执行程序的体积过大、内存消耗过大、CPU消耗过大、显示速度过慢、界面刷新时鼠标卡顿等等,上述任何一个问题发生,都将导致致命的结果。

【发明内容】

[0004]本发明提供一种嵌入式图形用户界面框架系统及其程序管理方法,以解决上述问题。
[0005]本发明提供一种嵌入式图形用户界面框架系统,包括事件处理模块、图形绘制模块、控件集群;其中,所述事件处理模块、所述图形绘制模块分别与所述控件集群相连。
[0006]本发明还提供一种基于嵌入式图形用户界面框架系统的程序管理方法,上述方法包括以下步骤:
通过鼠标控制模块获取外界输入的鼠标事件并传递给事件处理模块进行分析;
所述事件处理模块通过信号回调模块和用户接口管理模块或者直接通过所述信号回调模块与控件集群进行信息交互,确定控件的状态变化;
所述控件集群直接使用图形绘制模块或通过样式控制模块来使用图形绘制模块将控件绘制到屏幕上;
通过鼠标控制模块和鼠标显示效果模块,使用非主线程控制鼠标在屏幕上绘制,显示出给定形状的鼠标。
[0007]通过以下方案:通过鼠标控制模块获取外界输入的鼠标事件并传递给事件处理模块进行分析;所述事件处理模块通过信号回调模块和用户接口管理模块或者直接通过所述信号回调模块与控件集群进行信息交互,确定控件的状态变化;所述控件集群直接使用图形绘制模块或通过样式控制模块来使用图形绘制模块将控件绘制到屏幕上;通过鼠标控制模块和鼠标显示效果模块,使用非主线程控制鼠标在屏幕上绘制,显示出给定形状的鼠标,上述信号回调模块实现了一个信号关联多个回调、对控件集群中的目标控件发射的信号进行阻塞、让回调异步于信号执行,简化了用户编程的过程。
[0008]通过以下方案:所述鼠标控制模块和鼠标显示效果模块,使用彩色图片作为鼠标形状,使用非主线程控制鼠标在屏幕上进行绘制;使得鼠标的移动不再受主线程的影响而卡顿,大大提升用户的体验。
[0009]通过以下方案:所述样式控制模块,不仅能实现控件间的样式继承和传递还能单独的为某一控件配置样式;既保证了类似控件显示效果的一致性也满足了特殊控件显示效果的多样性,同时还大大简化了控件样式配置。
[0010]通过以下方案:所述用户接口管理模块,用于开放给编程用户实现自定义功能,和系统进行复杂的交互,简化了编程过程,提高了编程的灵活性。
[0011]通过以下方案:使用setMaskO接口,穿透单层窗口或单层窗口覆盖的所有窗口直到视频层,这为在窗口中播放视频提供了极大的便利。
【附图说明】
[0012]
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1所示为本发明的嵌入式图形用户界面框架系统结构图;
图2所示为本发明基于嵌入式图形用户界面框架系统的程序管理方法处理流程图。
【具体实施方式】
[0013]
下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
[0014]图1所示为本发明的嵌入式图形用户界面框架系统结构图,包括事件处理模块、图形绘制模块、信号回调模块、用户接口管理模块、鼠标控制模块、鼠标显示效果模块、样式控制模块、控件集群(包括:控件1、控件2、控件3…控件η);其中,所述事件处理模块、所述图形绘制模块分别与所述控件集群相连;
其中,所述信号回调模块、所述用户接口管理模块、所述样式控制模块分别与所述控件集群相连;所述信号回调模块分别与所述事件处理模块、所述用户接口管理模块相连;所述样式控制模块还与所述图形绘制模块相连;
所述鼠标控制模块与事件处理模块相连、所述鼠标显示效果模块与所述鼠标控制模块相连。
[0015]进一步地,所述样式控制模块,用于修改控件集群中单个控件的样式;还用于控制控件集群中控件之间样式的传递与继承。
[0016]其中,每个控件都有一个RSStyle实例,通过对RSStyle实例进行设置,从而获得对应控件的样式。
[0017]RSApplicat1n也有实例,它是一个全局实例,可以通过RSApplicat1n:: style O接口返回,设置它后,整个应用程序的默认样式都将随之改变。
[0018]RSStyle中为每种控件都建立了属性类,都以指针的形式存在;获取RSFrame属性类的指针,如果从未给该控件设置这个属性,内部会创建一个初始化好的实例并返回。
[0019]不同的控件支持的属性类型也会不一样,对于RSFrame控件,它支持的属性有:foreground、background、background_image、margin、border_image、border_width、border_color、border_radius、padding ;对于 RSPushButton 控件,除了支持 RSFrame控件的所有属性外还支持text_align ;对于Rad1Button和RSCheckBox控件,除了支持 RSFrame 控件的所有属性外还支持 indicator_color、indicator_image、indicator_padding 等等。
[0020]每个属性类都是一个庞大的指针集,每种控件在各种不同状态下的属性值在对应Opt1n中都留有一个指针位,如果该指针位为空,则表示属性未被设置,不为空表示该属性有值,可以使用,但并不意味着这个属性就是该控件显示设置的属性,它还可能是从其父控件甚至是RSApplicat1n继承过来的,继承过来的属性会随着控件间的父子控件关系动态改变,达到继承的效果,而控件显示设置的属性值在样式的继承中不仅不会被覆盖掉,而且还会传递给子控件,实现了控件样式的多样性。
[0021]通过以下方案:所述的样式控制模块,不仅能实现控件间的样式继承和传递还能单独的为某一控件配置样式;既保证了类似控件显示效果的一致性也满足了特殊控件显示效果的多样性,同时还大大简化了控件样式的配置。
[0022]进一步地,所述图形绘制模块,用于绘制图形、绘制控件;还用于多窗口的叠加显不O
[0023]进一步地,所述用户接口管理模块,用于编程用户进行自定义功能设置;还用于和嵌入式图形用户界面框架系统进行信息交互。
[0024]进一步地,所述信号回调模块,实现信号定义、信号发射、信号-回调的连接和断开;还用于一个信号关联多个回调,让编程用户实现一个事件发送触发多个操作;还用于对控件集群中目标控件发射的信号进行阻塞;还用于让回调异步于信号执行。
[0025]上述信号回调模块实现了一个信号关联多个回调、对控件集群中的目标控件发射的信号进行阻塞、让回调异步于信号执行,大大提升了用户体验。
[0026]提供4个特别的宏来完成这一机制:
1、define_signal(signalname)
--定义信号,定义名为signalname的信号,只支持定义无参信号。
[0027]2、connect_signal (sender, signal, receiver, slot)
--连接信号和回调,把sender的signal信号和receiver的slot回调关联起来。
[0028]receiver和slot之间需
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1