带独立渲染层的复合控件生成方法、系统及介质与流程

文档序号:17078638发布日期:2019-03-08 23:59阅读:130来源:国知局
带独立渲染层的复合控件生成方法、系统及介质与流程

本发明涉及图形用户界面编程领域,具体地,涉及带独立渲染层的复合控件生成方法、系统及介质。



背景技术:

qt提供了基础的窗口控件,如qwidget,qlabel,qpushbutton等,基础着色功能如qstyle,qpalette等,以及qtimer实现定时控制。可以通过qt提供的控件背景、前景颜色设置实现简单的颜色搭配,以及对按钮等控件提供了简单的动态效果如hover(鼠标悬停)、checked/selected(鼠标单击选中)时改变背景色,但不具备自定义自主可控的动态效果。

现有技术在父控件中添加子控件构,父控件作为底层控件,多个子控件作为顶层控件共同构成复合控件,通过设置父控件背景色控制复合控件的整体背景色;通过子控件背景颜色,背景透明度,子控件前景色对子控件进行个性化设置;父子控件叠加以静态方式呈现整个复合控件。



技术实现要素:

针对现有技术中的缺陷,本发明的目的是提供一种带独立渲染层的复合控件生成方法、系统及介质。

根据本发明提供的一种带独立渲染层的复合控件生成方法,包括:

底层控件生成步骤:生成复合控件的底层控件;

动态渲染层生成步骤:生成复合控件的动态渲染层;

顶层控件生成步骤:生成复合控件的顶层控件;

动态渲染层添加步骤:在底层控件上添加动态渲染层;

顶层控件添加步骤:在动态渲染层上添加顶层控件;

动态渲染层控制步骤:在复合控件运行过程中控制动态渲染层。

优选地,所述底层控件生成步骤包括:

控件定义步骤:定义底层控件的位置、大小、形状、基本背景、响应鼠标键盘事件时的背景中的任一项或任多项;

所述底层控件包括:qt原始控件qlabel、qt原始控件qwidget、qt原始控件qpushbutton、自定义控件中的任一项或任多项;

所述动态渲染层生成步骤:

设置动态渲染层边距为零,设置动态渲染层大小与底层控件相同,调整动态渲染层样式,使动态渲染层的形状与底层控件的形状相同,完全覆盖底层控件,调整动态渲染层的背景为默认全透明,使得整个复合控件默认显示的背景为底层控件背景;

所述顶层控件生成步骤:

设置顶层控件的默认大小,形状,背景及内容。

优选地,所述动态渲染层添加步骤:

在底层控件中加入行或列式布局,并设置布局外边距为零,在布局中加入qt原始控件qwidget或其子控件作为动态渲染层。

所述顶层控件添加步骤:

根据需要在动态渲染层内加入布局,控制顶层控件布局展示内容,在动态渲染层布局中加入顶层控件;

所述顶层控件用于复合控件具体各部分背景及内容的个性化展示。

优选地,所述动态渲染层控制步骤:

根据设置参数,在不改变底层控件与顶层控件背景前提下,单独设置动态渲染层的背景参数,实现复合控件背景动态改变,改变动态渲染层的背景透明度,显示动态渲染层的背景与底层背景、顶层背景进行混合后的复合控件背景;

所述设置参数包括:运行状态、数据变化、定时中的任一种或任多种;

所述背景参数包括:背景色、背景的透明度、渐变色、背景图片中的任一种或任多种。

根据本发明提供的一种带独立渲染层的复合控件生成系统,包括:

底层控件生成模块:生成复合控件的底层控件;

动态渲染层生成模块:生成复合控件的动态渲染层;

顶层控件生成模块:生成复合控件的顶层控件;

动态渲染层添加模块:在底层控件上添加动态渲染层;

顶层控件添加模块:在动态渲染层上添加顶层控件;

动态渲染层控制模块:在复合控件运行过程中控制动态渲染层。

优选地,所述底层控件生成模块包括:

控件定义模块:定义底层控件的位置、大小、形状、基本背景、响应鼠标键盘事件时的背景中的任一项或任多项;

所述底层控件包括:qt原始控件qlabel、qt原始控件qwidget、qt原始控件qpushbutton、自定义控件中的任一项或任多项;

所述动态渲染层生成模块:

设置动态渲染层边距为零,设置动态渲染层大小与底层控件相同,调整动态渲染层样式,使动态渲染层的形状与底层控件的形状相同,完全覆盖底层控件,调整动态渲染层的背景为默认全透明,使得整个复合控件默认显示的背景为底层控件背景;

所述顶层控件生成模块:

设置顶层控件的默认大小,形状,背景及内容。

优选地,所述动态渲染层添加模块:

在底层控件中加入行或列式布局,并设置布局外边距为零,在布局中加入qt原始控件qwidget或其子控件作为动态渲染层。

所述顶层控件添加模块:

根据需要在动态渲染层内加入布局,控制顶层控件布局展示内容,在动态渲染层布局中加入顶层控件;

所述顶层控件用于复合控件具体各部分背景及内容的个性化展示。

优选地,所述动态渲染层控制模块:

根据设置参数,在不改变底层控件与顶层控件背景前提下,单独设置动态渲染层的背景参数,实现复合控件背景动态改变,改变动态渲染层的背景透明度,显示动态渲染层的背景与底层背景、顶层背景进行混合后的复合控件背景;

所述设置参数包括:运行状态、数据变化、定时中的任一种或任多种;

所述背景参数包括:背景色、背景的透明度、渐变色、背景图片中的任一种或任多种。

根据本发明提供的一种存储有计算机程序的计算机可读存储介质,其特征在于,所述计算机程序被处理器执行时实现上述任一项所述的带独立渲染层的复合控件生成方法的步骤。

与现有技术相比,本发明具有如下的有益效果:

1、本发明在qt基础控件的基础上,在父控件与子控件中间插入一层专用控件用于动态背景渲染,即动态渲染层,通过控制动态渲染层的颜色,透明度变化,有机融入复合控件,使得控件以更丰富色彩展示出来,同时独立于对原父子控件的颜色及透明度控制。

2、本发明填补了原始复合控件背景色设置的局限性,可以更方便展示复杂的颜色效果,各层的颜色效果相互叠加,但各层效果相互独立,控制更加灵活。

3、本发明通过对qt(一款跨平台c++图形用户界面应用程序开发框架)基础控件进行扩展,实现了可对背景进行动态渲染的复杂显示控件。

4、本发明具有独立的渲染层,可以与原有效果有机融合,更加方便高效灵活。

附图说明

通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:

图1为本发明的实施例2的复合控件的界面截图示意图。

图2为本发明的实施例2的复合控件的界面截图示意图。

图3为本发明的带独立渲染层的复合控件生成方法的步骤流程示意图。

具体实施方式

下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变化和改进。这些都属于本发明的保护范围。

如图3所示,根据本发明提供的一种带独立渲染层的复合控件生成方法,包括:

底层控件生成步骤:生成复合控件的底层控件;

动态渲染层生成步骤:生成复合控件的动态渲染层;

顶层控件生成步骤:生成复合控件的顶层控件;

动态渲染层添加步骤:在底层控件上添加动态渲染层;

顶层控件添加步骤:在动态渲染层上添加顶层控件;

动态渲染层控制步骤:在复合控件运行过程中控制动态渲染层。

具体地,所述底层控件生成步骤包括:

控件定义步骤:定义底层控件的位置、大小、形状、基本背景、响应鼠标键盘事件时的背景中的任一项或任多项;

所述底层控件包括:qt原始控件qlabel、qt原始控件qwidget、qt原始控件qpushbutton、自定义控件中的任一项或任多项;

所述动态渲染层生成步骤:

设置动态渲染层边距为零,设置动态渲染层大小与底层控件相同,调整动态渲染层样式,使动态渲染层的形状与底层控件的形状相同,完全覆盖底层控件,调整动态渲染层的背景为默认全透明,使得整个复合控件默认显示的背景为底层控件背景;

所述顶层控件生成步骤:

设置顶层控件的默认大小,形状,背景及内容。

具体地,所述动态渲染层添加步骤:

在底层控件中加入行或列式布局,并设置布局外边距为零,在布局中加入qt原始控件qwidget或其子控件作为动态渲染层。

所述顶层控件添加步骤:

根据需要在动态渲染层内加入布局,控制顶层控件布局展示内容,在动态渲染层布局中加入顶层控件;

所述顶层控件用于复合控件具体各部分背景及内容的个性化展示。

具体地,所述动态渲染层控制步骤:

根据设置参数,在不改变底层控件与顶层控件背景前提下,单独设置动态渲染层的背景参数,实现复合控件背景动态改变,改变动态渲染层的背景透明度,显示动态渲染层的背景与底层背景、顶层背景进行混合后的复合控件背景;

所述设置参数包括:运行状态、数据变化、定时中的任一种或任多种;

所述背景参数包括:背景色、背景的透明度、渐变色、背景图片中的任一种或任多种。

本发明提供的带独立渲染层的复合控件生成系统,可以通过本发明给的带独立渲染层的复合控件生成方法的步骤流程实现。本领域技术人员可以将所述带独立渲染层的复合控件生成方法,理解为所述带独立渲染层的复合控件生成系统的一个优选例。

根据本发明提供的一种带独立渲染层的复合控件生成系统,包括:

底层控件生成模块:生成复合控件的底层控件;

动态渲染层生成模块:生成复合控件的动态渲染层;

顶层控件生成模块:生成复合控件的顶层控件;

动态渲染层添加模块:在底层控件上添加动态渲染层;

顶层控件添加模块:在动态渲染层上添加顶层控件;

动态渲染层控制模块:在复合控件运行过程中控制动态渲染层。

具体地,所述底层控件生成模块包括:

控件定义模块:定义底层控件的位置、大小、形状、基本背景、响应鼠标键盘事件时的背景中的任一项或任多项;

所述底层控件包括:qt原始控件qlabel、qt原始控件qwidget、qt原始控件qpushbutton、自定义控件中的任一项或任多项;

所述动态渲染层生成模块:

设置动态渲染层边距为零,设置动态渲染层大小与底层控件相同,调整动态渲染层样式,使动态渲染层的形状与底层控件的形状相同,完全覆盖底层控件,调整动态渲染层的背景为默认全透明,使得整个复合控件默认显示的背景为底层控件背景;

所述顶层控件生成模块:

设置顶层控件的默认大小,形状,背景及内容。

具体地,所述动态渲染层添加模块:

在底层控件中加入行或列式布局,并设置布局外边距为零,在布局中加入qt原始控件qwidget或其子控件作为动态渲染层。

所述顶层控件添加模块:

根据需要在动态渲染层内加入布局,控制顶层控件布局展示内容,在动态渲染层布局中加入顶层控件;

所述顶层控件用于复合控件具体各部分背景及内容的个性化展示。

具体地,所述动态渲染层控制模块:

根据设置参数,在不改变底层控件与顶层控件背景前提下,单独设置动态渲染层的背景参数,实现复合控件背景动态改变,改变动态渲染层的背景透明度,显示动态渲染层的背景与底层背景、顶层背景进行混合后的复合控件背景;

所述设置参数包括:运行状态、数据变化、定时中的任一种或任多种;

所述背景参数包括:背景色、背景的透明度、渐变色、背景图片中的任一种或任多种。

根据本发明提供的一种存储有计算机程序的计算机可读存储介质,其特征在于,所述计算机程序被处理器执行时实现上述任一项所述的带独立渲染层的复合控件生成方法的步骤。

下面通过优选例,对本发明进行更为具体地说明。

实施例1:

本复合控件实现分为三层:底层、中层和顶层,底层为基础控件,中层为底层控件的唯一子控件,并完全与底层控件大小形状一致,顶层控件为中层控件的子控件,受中层控件的布局控制。具体实现步骤如下:

1、首先设计复合控件的底层控件,底层控件可以是qlabel,qwidget,qpushbutton等可以设计布局的qt原始控件或自定义控件,它是整个控件的基底,依次定义控件的位置,大小,形状,背景,以及响应鼠标键盘事件时的背景,。

2、在父控件加入行或列式布局并设置布局外边距为零,同时在布局中加入qwidget或其子控件作为中层控件(动态渲染层)。

3、设计中层控件,中层控件(即动态渲染层)用于对整个控件的背景进行更复杂的渲染,同时控制顶层控件的布局。设置控件边距为零,大小与底层控件一致,调整控件样式,使其形状与底层控件相同,以达完全覆盖底层控件,同时调整控件背景为默认全透明,使得整个复合控件默认显示的背景为底层控件背景。

4、根据需要在中层控件内加入布局(此布局应与无中层控件时底层控件布局一致,达到在默认情况下对中层控件无感知),以便控制顶层控件布局用于展示内容。在中层控件布局中加入所有顶层控件。

5、设计顶层控件,顶层控件根据需要添加,可以是任意控件,用于复合控件具体各部分背景及内容的个性化展示。依次在中层控件布局中加入各子控件,设置控件的默认大小,形状,背景(如使用复合控件背景,可以设为全透明)及内容。

6、运行中对中层(动态渲染层)控件的控制,中层控件在默认情况下全透明,对用户完全无感。当需要显示复杂背景时,根据运行状态,数据变化,或者定时等,在不改变底层控件与顶层控件背景前提下,单独设置中层控件的背景色,背景的透明度,渐变色,背景图片等,实现复合控件背景动态改变,同时通过改变中层控件的背景透明度,实现与底层背景,顶层背景进行混合后的复合控件复杂背景呈现。

实施例2:

如图1、图2所示,pc某客户端软件,需要用户对数据变化以更丰富,更明晰的方式展示给用户

a)当股票价格向上实时变动时,背景为红色渐变,当股票为向下实时变动时,背景为绿色渐变,此时复合控件背景色为原始背景色(由父控件控制)叠加渐变色(由动态渲染层控制)。

b)当股票处于选中状态时,背景为选中状态背景,出现价格变化时,背景色叠加渐变色,此时复合控件背景色为选中状态背景色(由父控件控制)叠加渐变色(由动态渲染层控制)。

c)当股票处于鼠标悬停状态(未选中)时,背景为悬停状态背景,出现价格变化时,背景色叠加渐变色,此时复合控件背景色为鼠标悬停状态背景色(由父控件控制)叠加渐变色(由动态渲染层控制)。

d)当渐变发时生开始计始,一秒之后恢复动态渲染层为全透明(此时渐变色消失,父子控件的颜色不受影响,复合控件展示为原始状态,继续开始下一次变动。

在本申请的描述中,需要理解的是,术语“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本申请和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本申请的限制。

本领域技术人员知道,除了以纯计算机可读程序代码方式实现本发明提供的系统、装置及其各个模块以外,完全可以通过将方法步骤进行逻辑编程来使得本发明提供的系统、装置及其各个模块以逻辑门、开关、专用集成电路、可编程逻辑控制器以及嵌入式微控制器等的形式来实现相同程序。所以,本发明提供的系统、装置及其各个模块可以被认为是一种硬件部件,而对其内包括的用于实现各种程序的模块也可以视为硬件部件内的结构;也可以将用于实现各种功能的模块视为既可以是实现方法的软件程序又可以是硬件部件内的结构。

以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变化或修改,这并不影响本发明的实质内容。在不冲突的情况下,本申请的实施例和实施例中的特征可以任意相互组合。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1