CN105138230B - 嵌入式图形用户界面框架系统及其程序管理方法 - Google Patents
嵌入式图形用户界面框架系统及其程序管理方法 Download PDFInfo
- Publication number
- CN105138230B CN105138230B CN201510652754.XA CN201510652754A CN105138230B CN 105138230 B CN105138230 B CN 105138230B CN 201510652754 A CN201510652754 A CN 201510652754A CN 105138230 B CN105138230 B CN 105138230B
- Authority
- CN
- China
- Prior art keywords
- signal
- module
- control
- mouse
- readjustment
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- User Interface Of Digital Computer (AREA)
- Digital Computer Display Output (AREA)
Abstract
本发明提供一种嵌入式图形用户界面框架系统及其程序管理方法,上述方法包括以下步骤:通过鼠标控制模块获取外界输入的鼠标事件并传递给事件处理模块进行分析;所述事件处理模块通过信号回调模块和用户接口管理模块或者直接通过所述信号回调模块与控件集群进行信息交互,确定控件的状态变化;所述控件集群直接使用图形绘制模块或通过样式控制模块来使用图形绘制模块将控件绘制到屏幕上;通过鼠标控制模块和鼠标显示效果模块,使用非主线程控制鼠标在屏幕上绘制,显示出给定形状的鼠标,上述信号回调模块实现了一个信号关联多个回调、对控件集群中的目标控件发射的信号进行阻塞、让回调异步于信号执行,简化了用户编程的过程。
Description
技术领域
本发明属于图形用户界面领域,尤其涉及一种嵌入式图形用户界面框架系统及其程序管理方法。
背景技术
当给嵌入式设备开发程序时,在面对如何实现GUI(Graphical User Interface,图像用户界面)显示的问题时,对于简单的界面通过直接操作FrameBuffer(帧缓冲)就可以解决问题,但需要做比较复杂的界面和效果时,直接操作FrameBuffer就变得极其困难,再加上各个界面之间需要进行功能交互,这种方式就会失去控制。
现有技术采用Qt框架来解决上述问题,但是采用Qt框架在嵌入平台上存在着各种瓶颈:
编译后可执行程序的体积过大、内存消耗过大、CPU消耗过大、显示速度过慢、界面刷新时鼠标卡顿等等,上述任何一个问题发生,都将导致致命的结果。
发明内容
本发明提供一种嵌入式图形用户界面框架系统及其程序管理方法,以解决上述问题。
本发明提供一种嵌入式图形用户界面框架系统,包括事件处理模块、图形绘制模块、控件集群;其中,所述事件处理模块、所述图形绘制模块分别与所述控件集群相连。
本发明还提供一种基于嵌入式图形用户界面框架系统的程序管理方法,上述方法包括以下步骤:
通过鼠标控制模块获取外界输入的鼠标事件并传递给事件处理模块进行分析;
所述事件处理模块通过信号回调模块和用户接口管理模块或者直接通过所述信号回调模块与控件集群进行信息交互,确定控件的状态变化;
所述控件集群直接使用图形绘制模块或通过样式控制模块来使用图形绘制模块将控件绘制到屏幕上;
通过鼠标控制模块和鼠标显示效果模块,使用非主线程控制鼠标在屏幕上绘制,显示出给定形状的鼠标。
通过以下方案:通过鼠标控制模块获取外界输入的鼠标事件并传递给事件处理模块进行分析;所述事件处理模块通过信号回调模块和用户接口管理模块或者直接通过所述信号回调模块与控件集群进行信息交互,确定控件的状态变化;所述控件集群直接使用图形绘制模块或通过样式控制模块来使用图形绘制模块将控件绘制到屏幕上;通过鼠标控制模块和鼠标显示效果模块,使用非主线程控制鼠标在屏幕上绘制,显示出给定形状的鼠标,上述信号回调模块实现了一个信号关联多个回调、对控件集群中的目标控件发射的信号进行阻塞、让回调异步于信号执行,简化了用户编程的过程。
通过以下方案:所述鼠标控制模块和鼠标显示效果模块,使用彩色图片作为鼠标形状,使用非主线程控制鼠标在屏幕上进行绘制;使得鼠标的移动不再受主线程的影响而卡顿,大大提升用户的体验。
通过以下方案:所述样式控制模块,不仅能实现控件间的样式继承和传递还能单独的为某一控件配置样式;既保证了类似控件显示效果的一致性也满足了特殊控件显示效果的多样性,同时还大大简化了控件样式配置。
通过以下方案:所述用户接口管理模块,用于开放给编程用户实现自定义功能,和系统进行复杂的交互,简化了编程过程,提高了编程的灵活性。
通过以下方案:使用setMask()接口,穿透单层窗口或单层窗口覆盖的所有窗口直到视频层,这为在窗口中播放视频提供了极大的便利。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1所示为本发明的嵌入式图形用户界面框架系统结构图;
图2所示为本发明基于嵌入式图形用户界面框架系统的程序管理方法处理流程图。
具体实施方式
下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
图1所示为本发明的嵌入式图形用户界面框架系统结构图,包括事件处理模块、图形绘制模块、信号回调模块、用户接口管理模块、鼠标控制模块、鼠标显示效果模块、样式控制模块、控件集群(包括:控件1、控件2、控件3…控件n);其中,所述事件处理模块、所述图形绘制模块分别与所述控件集群相连;
其中,所述信号回调模块、所述用户接口管理模块、所述样式控制模块分别与所述控件集群相连;所述信号回调模块分别与所述事件处理模块、所述用户接口管理模块相连;所述样式控制模块还与所述图形绘制模块相连;
所述鼠标控制模块与事件处理模块相连、所述鼠标显示效果模块与所述鼠标控制模块相连。
进一步地,所述样式控制模块,用于修改控件集群中单个控件的样式;还用于控制控件集群中控件之间样式的传递与继承。
其中,每个控件都有一个RSStyle实例,通过对RSStyle实例进行设置,从而获得对应控件的样式。
RSApplication也有实例,它是一个全局实例,可以通过RSApplication::style()接口返回,设置它后,整个应用程序的默认样式都将随之改变。
RSStyle中为每种控件都建立了属性类,都以指针的形式存在;获取RSFrame属性类的指针,如果从未给该控件设置这个属性,内部会创建一个初始化好的实例并返回。
不同的控件支持的属性类型也会不一样,对于RSFrame控件,它支持的属性有:foreground、background、 background_image、margin、border_image、border_width、border_color、border_radius、 padding;对于RSPushButton控件,除了支持RSFrame控件的所有属性外还支持text_align;对于RadioButton和RSCheckBox控件,除了支持RSFrame控件的所有属性外还支持indicator_color、indicator_image、indicator_padding等等。
每个属性类都是一个庞大的指针集,每种控件在各种不同状态下的属性值在对应Option中都留有一个指针位,如果该指针位为空,则表示属性未被设置,不为空表示该属性有值,可以使用,但并不意味着这个属性就是该控件显示设置的属性,它还可能是从其父控件甚至是RSApplication继承过来的,继承过来的属性会随着控件间的父子控件关系动态改变,达到继承的效果,而控件显示设置的属性值在样式的继承中不仅不会被覆盖掉,而且还会传递给子控件,实现了控件样式的多样性。
通过以下方案:所述的样式控制模块,不仅能实现控件间的样式继承和传递还能单独的为某一控件配置样式;既保证了类似控件显示效果的一致性也满足了特殊控件显示效果的多样性,同时还大大简化了控件样式的配置。
进一步地,所述图形绘制模块,用于绘制图形、绘制控件;还用于多窗口的叠加显示。
进一步地,所述用户接口管理模块,用于编程用户进行自定义功能设置;还用于和嵌入式图形用户界面框架系统进行信息交互。
进一步地,所述信号回调模块,实现信号定义、信号发射、信号-回调的连接和断开;还用于一个信号关联多个回调,让编程用户实现一个事件发送触发多个操作;还用于对控件集群中目标控件发射的信号进行阻塞;还用于让回调异步于信号执行。
上述信号回调模块实现了一个信号关联多个回调、对控件集群中的目标控件发射的信号进行阻塞、让回调异步于信号执行,大大提升了用户体验。
提供4个特别的宏来完成这一机制:
1、define_signal(signalname)
-— 定义信号, 定义名为signalname的信号,只支持定义无参信号。
2、connect_signal(sender, signal, receiver, slot)
-— 连接信号和回调,把sender的signal信号和receiver的slot回调关联起来。
receiver和slot之间需要有归属关系,slot回调必须是receiver的静态成员函数,public和private类型的静态函数都可以,以这种方式连接的信号和回调,当信号发出时,slot回调会被立即调用。
slot回调函数一定需要具备与typedef void (*RSSlot)(RSObject *sender,RSObject *receiver)相同的函数原型。
3、connect_signal_queued(sender, signal, receiver, slot)
-— 连接异步信号回调,和connect_signal类似,只是回调的触发方式不一样,当信号发出后回调不会立即执行,需排队等到下次事件循环或更晚的时刻才开始执行回调。
4、disconnect_signal(sender, signal, receiver, slot)
-— 断开信号回调,断开sender的signal信号和receiver的slot回调的关联。
注:只有根类为RSObject的对象之间才能关联信号的和回调。
进一步地,所述事件处理模块用于对外界输入的事件和内部产生的事件进行综合分析和处理,控制整个系统的运作。
进一步地,所述鼠标控制模块,用于捕获外界鼠标的移动状态并传递给所述事件处理模块。
进一步地,所述鼠标控制模块,使用非主线程控制鼠标在屏幕上进行绘制;使得鼠标的移动不再受主线程的影响而卡顿,大大提升用户的体验。
进一步地,所述鼠标显示效果模块,用于设置任意大小的彩色图片作为鼠标外观,提升了鼠标的显示效果。
另外,所述用户接口管理模块,用于开放给编程用户实现自定义功能,和系统进行复杂的交互,简化了编程过程,提高了编程的灵活性。
进一步地,通过所述用户接口管理模块,调用使用setMask()接口,穿透单层窗口或单层窗口覆盖的所有窗口直到视频层,这为在窗口中播放视频提供了极大的便利。
图2所示为本发明基于嵌入式图形用户界面框架系统的程序管理方法处理流程图,包括以下步骤:
步骤201:通过鼠标控制模块获取外界输入的鼠标事件并传递给事件处理模块进行分析;
步骤202:所述事件处理模块通过信号回调模块和用户接口管理模块或者直接通过所述信号回调模块与控件集群进行信息交互,确定控件的状态变化;
步骤203:所述控件集群直接使用图形绘制模块或通过样式控制模块来使用图形绘制模块将控件绘制到屏幕上;
步骤204:通过鼠标控制模块和鼠标显示效果模块,使用非主线程控制鼠标在屏幕上绘制,显示出给定形状的鼠标。
其中,步骤203、204在执行时间上没有先后顺序,可以同时执行。
通过以下方案:通过鼠标控制模块获取外界输入的鼠标事件并传递给事件处理模块进行分析;所述事件处理模块通过信号回调模块和用户接口管理模块或者直接通过所述信号回调模块与控件集群进行信息交互,确定控件的状态变化;所述控件集群直接使用图形绘制模块或通过样式控制模块来使用图形绘制模块将控件绘制到屏幕上;通过鼠标控制模块和鼠标显示效果模块,使用非主线程控制鼠标在屏幕上绘制,显示出给定形状的鼠标,上述信号回调模块实现了一个信号关联多个回调、对控件集群中的目标控件发射的信号进行阻塞、让回调异步于信号执行,简化了用户编程的过程。
通过以下方案:所述鼠标控制模块和鼠标显示效果模块,使用彩色图片作为鼠标形状,使用非主线程控制鼠标在屏幕上进行绘制;使得鼠标的移动不再受主线程的影响而卡顿,大大提升用户的体验。
通过以下方案:所述样式控制模块,不仅能实现控件间的样式继承和传递还能单独的为某一控件配置样式;既保证了类似控件显示效果的一致性也满足了特殊控件显示效果的多样性,同时还大大简化了控件样式配置。
通过以下方案:所述用户接口管理模块,用于开放给编程用户实现自定义功能,和系统进行复杂的交互,简化了编程过程,提高了编程的灵活性。
通过以下方案:使用setMask()接口,穿透单层窗口或单层窗口覆盖的所有窗口直到视频层,这为在窗口中播放视频提供了极大的便利。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (7)
1.嵌入式图形用户界面框架系统,其特征在于,包括事件处理模块、图形绘制模块、控件集群;其中,所述事件处理模块、所述图形绘制模块分别与所述控件集群相连;还包括信号回调模块、用户接口管理模块、鼠标控制模块、鼠标显示效果模块、样式控制模块;
其中,所述信号回调模块、所述用户接口管理模块、所述样式控制模块分别与所述控件集群相连;所述信号回调模块分别与所述事件处理模块、所述用户接口管理模块相连;所述样式控制模块还与所述图形绘制模块相连;
所述鼠标控制模块与事件处理模块相连、所述鼠标显示效果模块与所述鼠标控制模块相连;所述鼠标控制模块,用于捕获外界鼠标的移动状态并传递给所述事件处理模块;所述鼠标显示效果模块,用于设置任意大小的彩色图片作为鼠标外观;
所述信号回调模块,实现信号定义、信号发射、信号-回调的连接和断开;还用于一个信号关联多个回调,让编程用户实现一个事件发送触发多个操作;还用于对控件集群中目标控件发射的信号进行阻塞;还用于让回调异步于信号执行,4个特别的宏来完成这一机制:
define_signal(signalname)
-—定义信号,定义名为signalname的信号,只支持定义无参信号;
connect_signal(sender,signal,receiver,slot)
-—连接信号和回调,把sender的signal信号和receiver的slot回调关联起来;
receiver和slot之间有归属关系,slot回调是receiver的静态成员函数,该静态成员函数为public类型或private类型,以这种方式连接的信号和回调,当信号发出时,slot回调会被立即调用;
slot回调函数具备与typedef void(*RSSlot)(RSObject*sender,RSObject*receiver)相同的函数原型,slot回调函数的返回值为void,其参数列表为RSObject*sender,RSObject*receiver;
connect_signal_queued(sender,signal,receiver,slot)
-—连接异步信号回调,和connect_signal类似,只是回调的触发方式不一样,当信号发出后回调不会立即执行,需排队等到下次事件循环或更晚的时刻才开始执行回调;
disconnect_signal(sender,signal,receiver,slot)
-—断开信号回调,断开sender的signal信号和receiver的slot回调的关联。
2.根据权利要求1所述的系统,其特征在于,所述样式控制模块,用于修改控件集群中单个控件的样式;还用于控制控件集群中控件之间样式的传递与继承。
3.根据权利要求1所述的系统,其特征在于,所述图形绘制模块,用于绘制图形、绘制控件;还用于多窗口的叠加显示。
4.根据权利要求1所述的系统,其特征在于,所述用户接口管理模块,用于编程用户进行自定义功能设置;还用于和嵌入式图形用户界面框架系统进行信息交互。
5.根据权利要求1所述的系统,其特征在于,所述事件处理模块用于对外界输入的事件和内部产生的事件进行综合分析和处理,控制整个系统的运作。
6.嵌入式图形用户界面框架系统的程序管理方法,其特征在于,包括以下步骤:
通过鼠标控制模块获取外界输入的鼠标事件并传递给事件处理模块进行分析;
所述事件处理模块通过信号回调模块和用户接口管理模块或者直接通过所述信号回调模块与控件集群进行信息交互,确定控件的状态变化,4个特别的宏来完成这一机制:
define_signal(signalname)
-—定义信号,定义名为signalname的信号,只支持定义无参信号;
connect_signal(sender,signal,receiver,slot)
-—连接信号和回调,把sender的signal信号和receiver的slot回调关联起来;
receiver和slot之间有归属关系,slot回调是receiver的静态成员函数,该静态成员函数为public类型或private类型,以这种方式连接的信号和回调,当信号发出时,slot回调会被立即调用;
slot回调函数具备与typedef void(*RSSlot)(RSObject*sender,RSObject*receiver)相同的函数原型,slot回调函数的返回值为void,其参数列表为RSObject*sender,RSObject*receiver;
connect_signal_queued(sender,signal,receiver,slot)
-—连接异步信号回调,和connect_signal类似,只是回调的触发方式不一样,当信号发出后回调不会立即执行,需排队等到下次事件循环或更晚的时刻才开始执行回调;
disconnect_signal(sender,signal,receiver,slot)
-—断开信号回调,断开sender的signal信号和receiver的slot回调的关联;
所述控件集群直接使用图形绘制模块或通过样式控制模块来使用图形绘制模块将控件绘制到屏幕上;
通过鼠标控制模块和鼠标显示效果模块,使用非主线程控制鼠标在屏幕上绘制,显示出给定形状的鼠标。
7.根据权利要求6所述的方法,其特征在于,通过用户接口管理模块,调用采用setMask()接口,穿透单层窗口或单层窗口覆盖的所有窗口直到视频层,在窗口上直接显示视频。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510652754.XA CN105138230B (zh) | 2015-10-10 | 2015-10-10 | 嵌入式图形用户界面框架系统及其程序管理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510652754.XA CN105138230B (zh) | 2015-10-10 | 2015-10-10 | 嵌入式图形用户界面框架系统及其程序管理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105138230A CN105138230A (zh) | 2015-12-09 |
CN105138230B true CN105138230B (zh) | 2016-11-23 |
Family
ID=54723594
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510652754.XA Active CN105138230B (zh) | 2015-10-10 | 2015-10-10 | 嵌入式图形用户界面框架系统及其程序管理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105138230B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106354499B (zh) * | 2016-08-26 | 2019-09-10 | 中国电子科技集团公司第四十一研究所 | 一种多域信号视图测量内容扩展方法 |
CN111722845B (zh) * | 2020-06-04 | 2024-08-13 | 深圳中科优瑞医疗科技有限公司 | 以stm32单片机为主控的嵌入式gui框架 |
CN114936053B (zh) * | 2022-03-23 | 2024-08-27 | 深圳市爱都科技有限公司 | 可穿戴设备的图形用户界面框架、嵌入式系统及绘制方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102298491B (zh) * | 2011-06-16 | 2012-11-28 | 珠海全志科技股份有限公司 | 嵌入式图形界面系统及其图像生成方法 |
CN103616996B (zh) * | 2013-11-28 | 2017-06-06 | Tcl集团股份有限公司 | 一种显示遮盖内容的鼠标显示方法及系统 |
CN104331262B (zh) * | 2014-10-09 | 2019-10-29 | 北京配天技术有限公司 | 基于QT embedded的同步显示方法、系统及数控机床 |
CN104731584B (zh) * | 2015-02-26 | 2018-10-02 | 武汉爱科唯自动化科技有限公司 | 一种开放式数控系统人机界面可定制的组态设计方法 |
-
2015
- 2015-10-10 CN CN201510652754.XA patent/CN105138230B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN105138230A (zh) | 2015-12-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11099812B2 (en) | Device and method for performing functions | |
WO2020038168A1 (zh) | 内容分享方法、装置、终端及存储介质 | |
US10503344B2 (en) | Dynamic cross-environment application configuration/orientation | |
CN105988860B (zh) | 执行应用程序的方法及移动装置 | |
CN107992301B (zh) | 用户界面实现方法、客户端及存储介质 | |
US8966379B2 (en) | Dynamic cross-environment application configuration/orientation in an active user environment | |
WO2017113856A1 (zh) | 弹幕显示方法和装置 | |
CN105138230B (zh) | 嵌入式图形用户界面框架系统及其程序管理方法 | |
CN104750498B (zh) | 一种控制鼠标模块的方法及电子设备 | |
CN105183547B (zh) | 一种用户界面的任务调度方法和装置 | |
CN107526477B (zh) | 屏幕解锁方法、装置及终端 | |
CN102868588A (zh) | 停靠栏的实现方法和装置 | |
US20200341616A1 (en) | Method and apparatus for controlling application icon and storage medium | |
CN107450830B (zh) | 一种单屏多窗口同时支持多点输入的方法和装置 | |
WO2017000898A1 (zh) | 软件图标显示方法和装置 | |
KR20160018866A (ko) | 애니메이션을 이용한 정보 디스플레이 방법 및 장치 | |
CN109656445A (zh) | 内容处理方法、装置、终端及存储介质 | |
CN113268212A (zh) | 投屏方法、装置、存储介质及电子设备 | |
US20150121270A1 (en) | Information processing method and electronic device | |
WO2018076753A1 (zh) | 一种显示的方法及装置 | |
CN112445564A (zh) | 界面显示方法及电子设备、计算机可读存储介质 | |
CN106325657A (zh) | 屏幕投影显示的控制方法、装置及移动终端 | |
CN114625469B (zh) | 基于虚拟资源的信息显示方法、装置、设备和介质 | |
WO2021259266A1 (zh) | 设置界面中开关显示方法、装置、电子设备及存储介质 | |
CN105577828B (zh) | 一种远程重定向方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |