CN109508188B - Gui动态布局方法、系统及介质 - Google Patents

Gui动态布局方法、系统及介质 Download PDF

Info

Publication number
CN109508188B
CN109508188B CN201811190063.2A CN201811190063A CN109508188B CN 109508188 B CN109508188 B CN 109508188B CN 201811190063 A CN201811190063 A CN 201811190063A CN 109508188 B CN109508188 B CN 109508188B
Authority
CN
China
Prior art keywords
layout
interface
component
container
template
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
Application number
CN201811190063.2A
Other languages
English (en)
Other versions
CN109508188A (zh
Inventor
陈锋
李志洋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Jindashi Network Technology Co ltd
Original Assignee
Shanghai Jindashi Network Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shanghai Jindashi Network Technology Co ltd filed Critical Shanghai Jindashi Network Technology Co ltd
Priority to CN201811190063.2A priority Critical patent/CN109508188B/zh
Publication of CN109508188A publication Critical patent/CN109508188A/zh
Application granted granted Critical
Publication of CN109508188B publication Critical patent/CN109508188B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/38Creation or generation of source code for implementing user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • G06F9/44526Plug-ins; Add-ons

Abstract

本发明提供了一种GUI动态布局方法、系统及介质,包括:模板类实现步骤:在Qt布局管理器基础上,结合C++模板技术实现一个CBaseLayout模板类;布局容器生成步骤:令CBaseLayout模板类根据初始化传入的枚举类型和大小自动生成组件布局容器,将组件布局容器存放到内部集合中,获取内部集合;所述GUI动态布局方法,还包括如下任一个步骤:布局框架搭建步骤:根据获取的内部集合,通过重写reLayout接口,实现具体自定义布局,搭建完成GUI界面整体布局框架。本发明快速搭建GUI界面布局框架,大大提高了开发效率。本发明提供组件模块化管理,减少了模块之间的耦合性,提高了系统稳定性。

Description

GUI动态布局方法、系统及介质
技术领域
本发明涉及C++跨平台编程领域,具体地,涉及GUI动态布局方法、系统及介质。
背景技术
现有的Qt布局管理器提供了基础的布局管理功能,可对组件按预定规则进行排列,但不支持组件的动态布局及动态切换,并且不具备组件模块化管理功能。
Qt提供一系列的布局管理类,如QHBoxLayout、QVBoxLayout、QGridLayout,用来描述布局中组件如何排列。当组件的位置、大小改变后,布局管理类会自动处理组件的空间位置、大小,使之可以整齐的排列起来。但对于开发框架来说,Qt布局管理器做的还远远不够,缺少组件动态布局、动态切换及模块化管理接口,用起来比较繁琐,开发效率低下。
发明内容
针对现有技术中的缺陷,本发明的目的是提供一种GUI动态布局方法、系统及介质。
根据本发明提供的一种GUI动态布局方法,包括:
模板类实现步骤:在Qt布局管理器基础上,结合C++模板技术实现一个CBaseLayout模板类;
布局容器生成步骤:令CBaseLayout模板类根据初始化传入的枚举类型和大小自动生成组件布局容器,将组件布局容器存放到内部集合中,获取内部集合;
所述GUI动态布局方法,还包括如下任一个步骤:
布局框架搭建步骤:根据获取的内部集合,通过重写reLayout接口,实现具体自定义布局,搭建完成GUI界面整体布局框架;
自定义组件开发步骤:根据获取的内部集合,进行自定义组件的开发。
优选地,所述CBaseLayout模板类被实现为一个C++模板类;
CBaseLayout模板类包括:模板参数class T和模板参数int TMax,模板参数classT表示实例化时传入的枚举类型,根据枚举类型中的枚举元素定义组件布局容器;模板参数int TMax表示枚举最大值,枚举最大值为枚举元素的个数,即组件布局容器的个数;
CBaseLayout模板类还包括:Qt布局管理器集合,即组件布局容器集合,组件布局容器集合的大小由模板参数int TMax决定;
所述布局容器生成步骤:
根据模板参数class T和模板参数int TMax,生成相应个数的组件布局容器并存放到内部集合中;
所述布局框架搭建步骤:
创建一个外部自定义布局容器,并且重新实现reLayout接口,然后根据枚举类型定义依次将内部集合中的组件布局容器添加到外部自定义布局容器中,搭建完成GUI界面整体布局框架。
优选地,所述CBaseLayout模板类包括:AddCustomWidget接口、GetCustomWidget接口、HideWidget接口、ShowWidget接口、reLayout接口中的任一个或任多个接口;
AddCustomWidget接口包括:参数T layoutType和参数QWidget*pWidget,根据参数T layoutType从内部集合中找到相应的组件布局容器,记为指定布局容器,并将参数QWidget*pWidget指向的自定义组件添加到指定布局容器中;
GetCustomWidget接口包括:参数T layoutType,根据参数T layoutType从内部集合中找到指定布局容器,并获取指定布局容器中的自定义组件;
HideWidget接口包括:参数T layoutType,根据参数T layoutType从内部集合中找到指定布局容器,并隐藏指定布局容器中的自定义组件;
ShowWidget接口包括:参数T layoutType,根据参数T layoutType从内部集合中找到指定布局容器,并显示指定布局容器中的自定义组件;
relayout接口为纯虚函数,要求实例化时重新实现,reLayout接口动态控制GUI界面整体布局。
优选地,所述自定义组件开发步骤包括:
组件添加步骤:调用AddCustomWidget接口将自定义组件添加到指定布局容器中,所述AddCustomWidget接口实现不同组件的动态切换;
组件显示或隐藏步骤:调用HideWidget接口或ShowWidget接口分别显示或隐藏指定布局容器中的自定义组件;
组件获取步骤:调用GetCustomWidget接口获取指定布局容器中的自定义组件。
根据本发明提供的一种GUI动态布局系统,包括:
模板类实现模块:在Qt布局管理器基础上,结合C++模板技术实现一个CBaseLayout模板类;
布局容器生成模块:令CBaseLayout模板类根据初始化传入的枚举类型和大小自动生成组件布局容器,将组件布局容器存放到内部集合中,获取内部集合;
布局框架搭建模块:根据获取的内部集合,通过重写reLayout接口,实现具体自定义布局,搭建完成GUI界面整体布局框架;
自定义组件开发模块:根据获取的内部集合,进行后续自定义组件的开发。
优选地,所述CBaseLayout模板类被实现为一个C++模板类;
CBaseLayout模板类包括:模板参数class T和模板参数int TMax,模板参数classT表示实例化时传入的枚举类型,根据枚举类型中的枚举元素定义组件布局容器;模板参数int TMax表示枚举最大值,枚举最大值为枚举元素的个数,即组件布局容器的个数;
CBaseLayout模板类还包括:Qt布局管理器集合,即组件布局容器集合,组件布局容器集合的大小由模板参数int TMax决定;
所述布局容器生成模块:
根据模板参数class T和模板参数int TMax,生成相应个数的组件布局容器并存放到内部集合中;
所述布局框架搭建模块:
创建一个外部自定义布局容器,并且重新实现reLayout接口,然后根据枚举类型定义依次将内部集合中的组件布局容器添加到外部自定义布局容器中,搭建完成GUI界面整体布局框架。
优选地,所述CBaseLayout模板类包括:AddCustomWidget接口、GetCustomWidget接口、HideWidget接口、ShowWidget接口、reLayout接口;
AddCustomWidget接口包括:参数T layoutType和参数QWidget*pWidget,根据参数T layoutType从内部集合中找到相应的组件布局容器,记为指定布局容器,并将参数QWidget*pWidget指向的自定义组件添加到指定布局容器中;
GetCustomWidget接口包括:参数T layoutType,根据参数T layoutType从内部集合中找到指定布局容器,并获取指定布局容器中的自定义组件;
HideWidget接口包括:参数T layoutType,根据参数T layoutType从内部集合中找到指定布局容器,并隐藏指定布局容器中的自定义组件;
ShowWidget接口包括:参数T layoutType,根据参数T layoutType从内部集合中找到指定布局容器,并显示指定布局容器中的自定义组件;
relayout接口为纯虚函数,要求实例化时重新实现,reLayout接口动态控制GUI界面整体布局。
优选地,所述自定义组件开发模块包括:
组件添加模块:调用AddCustomWidget接口将自定义组件添加到指定布局容器中,所述AddCustomWidget接口实现不同组件的动态切换;
组件显示或隐藏模块:调用HideWidget接口或ShowWidget接口分别显示或隐藏指定布局容器中的自定义组件;
组件获取模块:调用GetCustomWidget接口获取指定布局容器中的自定义组件。
根据本发明提供的一种存储计算机程序的计算机可读存储介质,所述计算机程序被处理器执行时实现上述任一项所述的GUI动态布局方法的步骤。
与现有技术相比,本发明具有如下的有益效果:
1、本发明可快速搭建GUI界面布局框架,大大提高了开发效率。
2、本发明提供组件模块化管理,减少了模块之间的耦合性,提高了系统稳定性。
3、本发明可实现组件动态布局、组件动态切换、组件模块化管理。
附图说明
通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1为本发明的实施例2的动态布局的界面示意图。
图2为本发明的实施例2的动态布局的界面示意图。
图3为本发明的实施例3的动态布局的界面示意图。
图4为本发明的实施例3的动态布局的界面示意图。
图5位本发明的GUI动态布局方法的步骤流程示意图。
具体实施方式
下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变化和改进。这些都属于本发明的保护范围。
如图5所示,根据本发明提供的一种GUI动态布局方法,包括:
模板类实现步骤:在Qt布局管理器基础上,结合C++模板技术实现一个CBaseLayout模板类;
布局容器生成步骤:令CBaseLayout模板类根据初始化传入的枚举类型和大小自动生成组件布局容器,将组件布局容器存放到内部集合中,获取内部集合;
所述GUI动态布局方法,还包括如下任一个步骤:
布局框架搭建步骤:根据获取的内部集合,通过重写reLayout接口,实现具体自定义布局,搭建完成GUI界面整体布局框架;
自定义组件开发步骤:根据获取的内部集合,进行自定义组件的开发。
具体地,所述CBaseLayout模板类被实现为一个C++模板类;
CBaseLayout模板类包括:模板参数class T和模板参数int TMax,模板参数classT表示实例化时传入的枚举类型,根据枚举类型中的枚举元素定义组件布局容器;模板参数int TMax表示枚举最大值,枚举最大值为枚举元素的个数,即组件布局容器的个数;
CBaseLayout模板类还包括:Qt布局管理器集合,即组件布局容器集合,组件布局容器集合的大小由模板参数int TMax决定;
所述布局容器生成步骤:
根据模板参数class T和模板参数int TMax,生成相应个数的组件布局容器并存放到内部集合中;
所述布局框架搭建步骤:
创建一个外部自定义布局容器,并且重新实现reLayout接口,然后根据枚举类型定义依次将内部集合中的组件布局容器添加到外部自定义布局容器中,搭建完成GUI界面整体布局框架。
具体地,所述CBaseLayout模板类包括:AddCustomWidget接口、GetCustomWidget接口、HideWidget接口、ShowWidget接口、reLayout接口中的任一个或任多个接口;
AddCustomWidget接口包括:参数T layoutType和参数QWidget*pWidget,根据参数T layoutType从内部集合中找到相应的组件布局容器,记为指定布局容器,并将参数QWidget*pWidget指向的自定义组件添加到指定布局容器中;
GetCustomWidget接口包括:参数T layoutType,根据参数T layoutType从内部集合中找到指定布局容器,并获取指定布局容器中的自定义组件;
HideWidget接口包括:参数T layoutType,根据参数T layoutType从内部集合中找到指定布局容器,并隐藏指定布局容器中的自定义组件;
ShowWidget接口包括:参数T layoutType,根据参数T layoutType从内部集合中找到指定布局容器,并显示指定布局容器中的自定义组件;
relayout接口为纯虚函数,要求实例化时重新实现,reLayout接口动态控制GUI界面整体布局。
具体地,所述自定义组件开发步骤包括:
组件添加步骤:调用AddCustomWidget接口将自定义组件添加到指定布局容器中,所述AddCustomWidget接口实现不同组件的动态切换;
组件显示或隐藏步骤:调用HideWidget接口或ShowWidget接口分别显示或隐藏指定布局容器中的自定义组件;
组件获取步骤:调用GetCustomWidget接口获取指定布局容器中的自定义组件。
本发明提供的GUI动态布局系统,可以通过本发明给的GUI动态布局方法的步骤流程实现。本领域技术人员可以将所述GUI动态布局方法,理解为所述GUI动态布局系统的一个优选例。
根据本发明提供的一种GUI动态布局系统,包括:
模板类实现模块:在Qt布局管理器基础上,结合C++模板技术实现一个CBaseLayout模板类;
布局容器生成模块:令CBaseLayout模板类根据初始化传入的枚举类型和大小自动生成组件布局容器,将组件布局容器存放到内部集合中,获取内部集合;
布局框架搭建模块:根据获取的内部集合,通过重写reLayout接口,实现具体自定义布局,搭建完成GUI界面整体布局框架;
自定义组件开发模块:根据获取的内部集合,进行后续自定义组件的开发。
具体地,所述CBaseLayout模板类被实现为一个C++模板类;
CBaseLayout模板类包括:模板参数class T和模板参数int TMax,模板参数classT表示实例化时传入的枚举类型,根据枚举类型中的枚举元素定义组件布局容器;模板参数int TMax表示枚举最大值,枚举最大值为枚举元素的个数,即组件布局容器的个数;
CBaseLayout模板类还包括:Qt布局管理器集合,即组件布局容器集合,组件布局容器集合的大小由模板参数int TMax决定;
所述布局容器生成模块:
根据模板参数class T和模板参数int TMax,生成相应个数的组件布局容器并存放到内部集合中;
所述布局框架搭建模块:
创建一个外部自定义布局容器,并且重新实现reLayout接口,然后根据枚举类型定义依次将内部集合中的组件布局容器添加到外部自定义布局容器中,搭建完成GUI界面整体布局框架。
具体地,所述CBaseLayout模板类包括:AddCustomWidget接口、GetCustomWidget接口、HideWidget接口、ShowWidget接口、reLayout接口;
AddCustomWidget接口包括:参数T layoutType和参数QWidget*pWidget,根据参数T layoutType从内部集合中找到相应的组件布局容器,记为指定布局容器,并将参数QWidget*pWidget指向的自定义组件添加到指定布局容器中;
GetCustomWidget接口包括:参数T layoutType,根据参数T layoutType从内部集合中找到指定布局容器,并获取指定布局容器中的自定义组件;
HideWidget接口包括:参数T layoutType,根据参数T layoutType从内部集合中找到指定布局容器,并隐藏指定布局容器中的自定义组件;
ShowWidget接口包括:参数T layoutType,根据参数T layoutType从内部集合中找到指定布局容器,并显示指定布局容器中的自定义组件;
relayout接口为纯虚函数,要求实例化时重新实现,reLayout接口动态控制GUI界面整体布局。
具体地,所述自定义组件开发模块包括:
组件添加模块:调用AddCustomWidget接口将自定义组件添加到指定布局容器中,所述AddCustomWidget接口实现不同组件的动态切换;
组件显示或隐藏模块:调用HideWidget接口或ShowWidget接口分别显示或隐藏指定布局容器中的自定义组件;
组件获取模块:调用GetCustomWidget接口获取指定布局容器中的自定义组件。
根据本发明提供的一种存储计算机程序的计算机可读存储介质,所述计算机程序被处理器执行时实现上述任一项所述的GUI动态布局方法的步骤。
下面通过优选例,对本发明进行更为具体地说明。
实施例1:
本发明在Qt布局管理器基础上,结合C++模板技术实现了一个CBaseLayout模板类。该模板类具体提供以下接口:AddCustomWidget、GetCustomWidget、HideWidget、ShowWidget、reLayout。
本发明具体使用方法如下:
步骤1:CBaseLayout模板类根据初始化传入的枚举类型和大小自动生成组件布局容器。
步骤2:通过重写reLayout虚函数,实现具体自定义布局。并且reLayout接口可动态控制GUI界面整体布局。
此时,GUI界面整体布局框架已经搭建完成,后续自定义组件可并行开发,提高开发效率。
步骤3:后续组件可通过调用AddCustomWidget接口添加到指定布局容器中。并且AddCustomWidget接口可实现不同组件的动态切换。
步骤4:通过调用HideWidget接口或ShowWidget接口可显示或隐藏指定布局容器中的组件。
步骤5:通过调用GetCustomWidget接口可获取指定布局容器中的组件。
实施例2:
如图1、图2所示,PC某客户端软件,需要实现右侧盘口的动态布局。
A)美股右侧盘口布局如图1所示
B)如图2所示,切换合约后,通过调用reLayout接口右侧盘口布局动态调整为港股。
实施例3:
如图3、图4所示,PC某客户端软件,需要实现行情列表页面和个股详情页面动态切换。
A)行情列表页布局如图3所示。
B)如图4所示,双击后,通过调用AddCustomWidget接口动态切换进入个股详情页。
本领域技术人员知道,除了以纯计算机可读程序代码方式实现本发明提供的系统、装置及其各个模块以外,完全可以通过将方法步骤进行逻辑编程来使得本发明提供的系统、装置及其各个模块以逻辑门、开关、专用集成电路、可编程逻辑控制器以及嵌入式微控制器等的形式来实现相同程序。所以,本发明提供的系统、装置及其各个模块可以被认为是一种硬件部件,而对其内包括的用于实现各种程序的模块也可以视为硬件部件内的结构;也可以将用于实现各种功能的模块视为既可以是实现方法的软件程序又可以是硬件部件内的结构。
以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变化或修改,这并不影响本发明的实质内容。在不冲突的情况下,本申请的实施例和实施例中的特征可以任意相互组合。

Claims (7)

1.一种GUI动态布局方法,其特征在于,包括:
模板类实现步骤:在Qt布局管理器基础上,结合C++模板技术实现一个CBaseLayout模板类;
布局容器生成步骤:令CBaseLayout模板类根据初始化传入的枚举类型和大小自动生成组件布局容器,将组件布局容器存放到内部集合中,获取内部集合;
所述GUI动态布局方法,还包括如下任一个步骤:
布局框架搭建步骤:根据获取的内部集合,通过重写reLayout接口,实现具体自定义布局,搭建完成GUI界面整体布局框架;
自定义组件开发步骤:根据获取的内部集合,进行自定义组件的开发;
所述GUI动态布局方法的具体使用方法如下:
步骤1:CBaseLayout模板类根据初始化传入的枚举类型和大小自动生成组件布局容器;
步骤2:通过重写reLayout虚函数,实现具体自定义布局;并且reLayout接口可动态控制GUI界面整体布局;
GUI界面整体布局框架已经搭建完成,后续自定义组件可并行开发;
步骤3:组件通过调用AddCustomWidget接口添加到指定布局容器中;并且AddCustomWidget接口实现不同组件的动态切换;
步骤4:通过调用HideWidget接口或ShowWidget接口显示或隐藏指定布局容器中的组件;
步骤5:通过调用GetCustomWidget接口可获取指定布局容器中的组件;
所述CBaseLayout模板类被实现为一个C++模板类;
CBaseLayout模板类包括:模板参数class T和模板参数int TMax,模板参数class T表示实例化时传入的枚举类型,根据枚举类型中的枚举元素定义组件布局容器;模板参数intTMax表示枚举最大值,枚举最大值为枚举元素的个数,即组件布局容器的个数;
CBaseLayout模板类还包括:Qt布局管理器集合,即组件布局容器集合,组件布局容器集合的大小由模板参数int TMax决定;
所述布局容器生成步骤:
根据模板参数class T和模板参数int TMax,生成相应个数的组件布局容器并存放到内部集合中;
所述布局框架搭建步骤:
创建一个外部自定义布局容器,并且重新实现reLayout接口,然后根据枚举类型定义依次将内部集合中的组件布局容器添加到外部自定义布局容器中,搭建完成GUI界面整体布局框架;
所述CBaseLayout模板类包括:AddCustomWidget接口、GetCustomWidget接口、HideWidget接口、ShowWidget接口、reLayout接口中的任一个或任多个接口;
AddCustomWidget接口包括:参数T layoutType和参数QWidget*pWidget,根据参数TlayoutType从内部集合中找到相应的组件布局容器,记为指定布局容器,并将参数QWidget*pWidget指向的自定义组件添加到指定布局容器中;
GetCustomWidget接口包括:参数T layoutType,根据参数TlayoutType从内部集合中找到指定布局容器,并获取指定布局容器中的自定义组件;
HideWidget接口包括:参数T layoutType,根据参数T layoutType从内部集合中找到指定布局容器,并隐藏指定布局容器中的自定义组件;
ShowWidget接口包括:参数T layoutType,根据参数T layoutType从内部集合中找到指定布局容器,并显示指定布局容器中的自定义组件;
relayout接口为纯虚函数,要求实例化时重新实现,reLayout接口动态控制GUI界面整体布局。
2.根据权利要求1所述的GUI动态布局方法,其特征在于,所述自定义组件开发步骤包括:
组件添加步骤:调用AddCustomWidget接口将自定义组件添加到指定布局容器中,所述AddCustomWidget接口实现不同组件的动态切换;
组件显示或隐藏步骤:调用HideWidget接口或ShowWidget接口分别显示或隐藏指定布局容器中的自定义组件;
组件获取步骤:调用GetCustomWidget接口获取指定布局容器中的自定义组件。
3.一种基于权利要求1所述的GUI动态布局方法实现的系统,其特征在于,包括:
模板类实现模块:在Qt布局管理器基础上,结合C++模板技术实现一个CBaseLayout模板类;
布局容器生成模块:令CBaseLayout模板类根据初始化传入的枚举类型和大小自动生成组件布局容器,将组件布局容器存放到内部集合中,获取内部集合;
布局框架搭建模块:根据获取的内部集合,通过重写reLayout接口,实现具体自定义布局,搭建完成GUI界面整体布局框架;
自定义组件开发模块:根据获取的内部集合,进行后续自定义组件的开发。
4.根据权利要求3所述的GUI动态布局系统,其特征在于,所述CBaseLayout模板类被实现为一个C++模板类;
CBaseLayout模板类包括:模板参数class T和模板参数int TMax,模板参数class T表示实例化时传入的枚举类型,根据枚举类型中的枚举元素定义组件布局容器;模板参数intTMax表示枚举最大值,枚举最大值为枚举元素的个数,即组件布局容器的个数;
CBaseLayout模板类还包括:Qt布局管理器集合,即组件布局容器集合,组件布局容器集合的大小由模板参数int TMax决定;
所述布局容器生成模块:
根据模板参数class T和模板参数int TMax,生成相应个数的组件布局容器并存放到内部集合中;
所述布局框架搭建模块:
创建一个外部自定义布局容器,并且重新实现reLayout接口,然后根据枚举类型定义依次将内部集合中的组件布局容器添加到外部自定义布局容器中,搭建完成GUI界面整体布局框架。
5.根据权利要求4所述的GUI动态布局系统,其特征在于,所述CBaseLayout模板类包括:AddCustomWidget接口、GetCustomWidget接口、HideWidget接口、ShowWidget接口、reLayout接口;
AddCustomWidget接口包括:参数T layoutType和参数QWidget*pWidget,根据参数TlayoutType从内部集合中找到相应的组件布局容器,记为指定布局容器,并将参数QWidget*pWidget指向的自定义组件添加到指定布局容器中;
GetCustomWidget接口包括:参数T layoutType,根据参数TlayoutType从内部集合中找到指定布局容器,并获取指定布局容器中的自定义组件;
HideWidget接口包括:参数T layoutType,根据参数T layoutType从内部集合中找到指定布局容器,并隐藏指定布局容器中的自定义组件;
ShowWidget接口包括:参数T layoutType,根据参数T layoutType从内部集合中找到指定布局容器,并显示指定布局容器中的自定义组件;
relayout接口为纯虚函数,要求实例化时重新实现,reLayout接口动态控制GUI界面整体布局。
6.根据权利要求5所述的GUI动态布局系统,其特征在于,所述自定义组件开发模块包括:
组件添加模块:调用AddCustomWidget接口将自定义组件添加到指定布局容器中,所述AddCustomWidget接口实现不同组件的动态切换;
组件显示或隐藏模块:调用HideWidget接口或ShowWidget接口分别显示或隐藏指定布局容器中的自定义组件;
组件获取模块:调用GetCustomWidget接口获取指定布局容器中的自定义组件。
7.一种存储计算机程序的计算机可读存储介质,其特征在于,所述计算机程序被处理器执行时实现权利要求1至2中任一项所述的GUI动态布局方法的步骤。
CN201811190063.2A 2018-10-12 2018-10-12 Gui动态布局方法、系统及介质 Active CN109508188B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811190063.2A CN109508188B (zh) 2018-10-12 2018-10-12 Gui动态布局方法、系统及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811190063.2A CN109508188B (zh) 2018-10-12 2018-10-12 Gui动态布局方法、系统及介质

Publications (2)

Publication Number Publication Date
CN109508188A CN109508188A (zh) 2019-03-22
CN109508188B true CN109508188B (zh) 2022-09-06

Family

ID=65746550

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811190063.2A Active CN109508188B (zh) 2018-10-12 2018-10-12 Gui动态布局方法、系统及介质

Country Status (1)

Country Link
CN (1) CN109508188B (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102981861A (zh) * 2012-12-12 2013-03-20 上海航天测控通信研究所 一种基于Qt的自定义控件的使用方法
CN104239037A (zh) * 2014-08-25 2014-12-24 中国电子科技集团公司第二十九研究所 一种业务功能可重构的软件框架
CN104699376A (zh) * 2015-04-03 2015-06-10 上海航天测控通信研究所 控件自动布局方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120284631A1 (en) * 2011-05-02 2012-11-08 German Lancioni Methods to adapt user interfaces and input controls
US10289388B2 (en) * 2016-06-30 2019-05-14 Oracle International Corporation Process visualization toolkit

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102981861A (zh) * 2012-12-12 2013-03-20 上海航天测控通信研究所 一种基于Qt的自定义控件的使用方法
CN104239037A (zh) * 2014-08-25 2014-12-24 中国电子科技集团公司第二十九研究所 一种业务功能可重构的软件框架
CN104699376A (zh) * 2015-04-03 2015-06-10 上海航天测控通信研究所 控件自动布局方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
Customized Layoutmanager;Trolltech;《https://doc.qt.io/archives/3.3/customlayout-example.html》;20030327;全文 *
PyQt5笔记(02):嵌套布局;吞吞吐吐的;《https://developer.aliyun.com/article/396526》;20171009;第4页 *
Qt之自定义布局管理器(QBorderLayout);一去、二三里;《https://blog.csdn.net/liang19890820/article/details/51519088》;20160527;全文 *

Also Published As

Publication number Publication date
CN109508188A (zh) 2019-03-22

Similar Documents

Publication Publication Date Title
CN107015791B (zh) 一种生成图表组件系统的处理方法、装置及系统
US20190294420A1 (en) Code Generation And Simulation For Graphical Programming
CN103150198B (zh) 一种组态软件的显示方法
CN104778022A (zh) 一种数据处理方法及电子设备
CN107402766A (zh) 页面布局管理方法及装置
CN101464843B (zh) 在多操作系统中共享显示卡的方法和计算机系统
CN111476007A (zh) 表格生成方法、装置、计算机装置及计算机可读存储介质
CN102081521B (zh) 一种通用的武器装备操作界面开发平台
CN109508188B (zh) Gui动态布局方法、系统及介质
CN110941422A (zh) 代码自动生成方法、代码生成器及可读存储介质
US8762589B2 (en) Data transfer between devices maintaining state data
CN111324348A (zh) 一种导引设备地面操控台的人机交互界面实现方法
CN113778622A (zh) 云桌面键盘事件处理方法、装置、设备及存储介质
CN112817581A (zh) 一种轻量级智能服务构建和运行支撑方法
TWI803875B (zh) 業務邏輯表示模型的建模裝置及建模方法
Bărbulescu The GUI component of DistriSimJ
Ramakrishna Managing Semantics of Graphic Components Through Remodeling Traditional Display Files
Weigold et al. Advanced grid programming with components: A biometric identification case study
Abbott et al. Diverse Uses of Python at Diamond
CN118034712A (zh) 一种模型应用部署系统及方法
Philippi Visual programming of concurrent object-oriented systems
Baek A Simplified Graphics System Based on Direct Rendering Manager System
CN113220278A (zh) 适用多场景的页面搭建方法及系统、介质、装置
CN1409217A (zh) 基于面向对象的分布式交互仿真应用程序的开发方法
Shen et al. Research and Design on Universal Framework for Integration CAD/CAE System

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant