CN105739984B - 一种基于Qt的高可维护性数据显示系统 - Google Patents
一种基于Qt的高可维护性数据显示系统 Download PDFInfo
- Publication number
- CN105739984B CN105739984B CN201610067227.7A CN201610067227A CN105739984B CN 105739984 B CN105739984 B CN 105739984B CN 201610067227 A CN201610067227 A CN 201610067227A CN 105739984 B CN105739984 B CN 105739984B
- Authority
- CN
- China
- Prior art keywords
- data
- page
- control
- class
- main program
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/38—Creation or generation of source code for implementing user interfaces
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种基于Qt的高可维护性数据显示系统,该系统包括主程序、页面设计器,所述主程序,用于显示页面;所述页面设计器,用于以可视化方式创建、修改页面;所述页面包括控件,所述控件以插件的形式提供给页面设计器和主程序;所述页面设计器用所述控件组装形成页面文件,所述主程序通过加载所述控件和所述页面文件动态创建界面进行数据展示,所述数据展示方式的扩展通过升级所述控件实现。本发明数据显示高效、页面与软件松耦合、页面维护可视化、数据展示方式扩展性强、跨平台。能够降低数据显示软件的开发成本、提升数据显示软件的用户体验。
Description
技术领域
本发明涉及显示技术领域,尤其涉及一种基于Qt的高可维护性数据显示系统。
背景技术
在工业领域,数据显示软件作为态势展示最有效的手段,有着十分广泛的应用。例如:在航天领域,数据显示软件通过显示火箭和卫星的外测、遥测等数据展示火箭和卫星的飞行状态、仪器工作状态等态势信息,从而为指挥员的各种决策提供依据;在电力部门,数据展示软件通过显示电网各节点数据展示电网整体工作状态,从而为调度指挥人员提供决策依据。
在数据显示软件的应用场合,通常要面临数据规模大、数据内容变化频繁、数据展示方式多变等问题。因此数据显示软件往往通过分页以多页面的形式来展示数据,而且需要通过及时维护页面来满足数据内容和数据展示方式多变的需求,这种维护需要贯穿软件的整个生命周期。从实际应用情况看,页面维护工作既可能是由承研方完成,也可能是由用户方完成。如果是前者,那么软件的可维护性直接关系到开发的成本;如果是后者,那么软件的可维护性直接关系到用户体验。因此,数据显示软件的可维护性至关重要。
一般来说,高可维护性的数据显示软件显示框架应具有四个特点,分别是页面与软件松耦合、页面维护可视化、数据展示方式可扩展性强、跨平台。页面与软件松耦合要求页面是软件独立的模块,可独立于软件进行修改,而且页面的修改不会引起软件的重新编译。页面维护可视化要求页面的创建、修改能以可视化的方式完成,维护效率高。数据展示方式可扩展性强要求显示框架能灵活的适应数据展示方式易变的需求,展示方式的扩展不能引起软件的重新编译以及页面的大幅度修改。跨平台要求软件代码能在不同操作系统间复用,数据展示性能在不同操作系统间差别很小,不能由于软件的跨平台使用带来过多的维护工作量。特别地,随着软件国产化的逐步推进,国产中标麒麟操作系统获得了越来越广泛的应用,显示框架的跨平台特性显得尤为重要。当然,软件的高可维护性不能以牺牲数据显示性能作为代价。
目前的数据显示软件显示框架中,很难同时满足高可维护性的四个要求。
发明内容
有鉴于此,本发明提供了一种基于Qt的高可维护性数据显示系统,解决了现有的数据显示软件可维护性不高的问题。
本发明采用的技术手段如下:
一种基于Qt的高可维护性数据显示系统,该系统包括主程序、页面设计器,所述主程序,用于显示页面;所述页面设计器,用于以可视化方式创建、修改页面;所述页面包括控件,所述控件以插件的形式提供给页面设计器和主程序;所述页面设计器用所述控件组装形成页面文件,所述主程序通过加载所述控件和所述页面文件动态创建界面得到数据展示,所述数据展示方式的扩展通过升级所述控件实现。
优选地,所述主程序包括数据显示框架,所述数据显示框架包括页面容器、控件管理器、数据接收器,所述页面容器,用于控制页面的显示;所述控件管理器,用于管理控件的初始化、注册、数据接收、数据显示;所述数据接收器,用于从网络接收数据,并将数据发送给所需要的控件;所述页面容器和所述控件管理器位于所述主程序的主线程中,所述数据接收器位于所述主程序的子线程中,所述页面容器添加控件于所述控件管理器中,所述页面容器控制刷新所述控件管理器中的控件,所述控件管理器和所述数据接收器通过跨线程的信号——槽机制进行通信,实现控件的注册和数据的发送。
优选地,所述控件包括MyCustomWidget类和MyCustomWidgetInterface类,所述MyCustomWidget类,继承于Qt的窗口类和自定义的数据接口类(DataInterface类),用于根据所接收的数据绘制控件的外观。所述数据接口类(DataInterface类)用于定义控件数据接收与显示控制的接口。所述MyCustomWidgetInterface类,用于提供主程序和页面设计器访问控件所需的接口。
优选地,所述数据包括数据ID号和数据值。
采用本发明所提供的一种基于Qt的高可维护性数据显示系统,该系统数据显示高效、页面与软件松耦合、页面维护可视化、数据展示方式扩展性强、跨平台。本发明能够降低数据显示软件的开发成本、提升数据显示软件的用户体验。
附图说明
图1为本发明的总体显示框架示意图;
图2为本发明的控件框架示意图;
图3为本发明的页面容器、页面和控件之间的关系示意图;
图4为本发明的页面容器、控件管理器和数据接收器之间的交互关系示意图;
图5为本发明的MyCustomWidget类UML图;
图6为本发明的控件管理器ControlManager类UML图;
图7为本发明的数据接收器DataReceiver类UML图。
具体实施方式
以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。
参照图1,一种基于Qt的高可维护性数据显示系统,该系统包括主程序、页面设计器,所述主程序用于显示页面,所述页面设计器用于以可视化方式创建、修改页面,从而实现页面与软件松耦合以及页面维护可视化的要求。
所述页面包括控件,用控件作为页面组成的基本元素,所述控件以插件的形式提供给页面设计器和主程序。
所述页面设计器即Qt设计师,Qt设计师是Qt自带的一款界面可视化设计工具,它能将Qt设计师控件组装形成ui文件。ui文件本质上是一种xml文本文件,存有控件本身的各种属性值、控件间的隶属关系、界面布局等信息。直接用ui文件作为页面文件,用Qt设计师作为页面设计器,并在主程序中采用QtUI工具模块(QtUITools模块)中的QUiLoader类加载ui文件的方式动态创建并显示页面。Qt设计师预留了控件扩展接口,支持自定义控件,数据展示方式扩展方便。
所述页面设计器用所述控件组装形成页面文件,所述主程序通过加载所述控件和所述页面文件动态创建界面,最终实现数据展示。所述数据展示方式的扩展通过升级所述控件实现,可扩展性强。整个框架基于Qt构建,Qt的跨平台特性很好的满足了整个框架的跨平台要求。
参照图3和图4,所述主程序包括数据显示框架,所述数据显示框架包括页面容器、控件管理器、数据接收器,所述页面容器用于控制页面的显示,所述控件管理器用于管理控件的初始化、注册、数据接收、数据显示,所述数据接收器用于从网络接收数据,并将数据发送给所需要的控件,图7是所述数据接收器的UML类图。m_controlMap是一个QMultiMap型的成员变量,用于存储需要某一数据的控件列表。DataReceiver类的成员函数详细说明见表1。
表1 DataReceiver类成员函数说明
所述页面容器和所述控件管理器位于所述主程序的主线程中,所述数据接收器位于所述主程序的子线程中,所述页面容器显示页面,所述控件管理器并添加页面内的控件于所述控件管理器中,图6是所述控件管理器的UML类图,m_controlList是一个列表型的成员变量,用于存储控件对象,成员函数的详细说明见表2。所述页面容器控制刷新所述控件管理器中的控件,所述控件管理器和所述数据接收器通过Qt跨线程的信号——槽机制进行通信,实现控件的注册和数据的发送接收。
表2 ControlManager类成员函数说明
参照图2,所述控件包括MyCustomWidget类和MyCustomWidgetInterface类,所述MyCustomWidget类,继承于Qt的窗口类和自定义的数据接口类(DataInterface类),用于根据所接收的数据绘制控件的外观。所述数据接口类(DataInterface类)用于定义控件数据接收与显示控制的接口。所述MyCustomWidgetInterface类用于提供主程序和页面设计器访问控件所需的接口。所述控件基于Qt设计师自定义控件扩展而来。MyCustomWidget对象在MyCustomWidgetInterface类的接口函数中创建并提供给主程序和页面设计器。
所述MyCustomWidgetInterface类有两个基类,包括QObject类和QDesignerCustomWidgetInterface类,均为QtSDK提供的类。其中QDesignerCustomWidgetInterface类的所有虚函数在MyCustomWidgetInterface类中都需要实现。
参照图5,所述MyCustomWidget类有两个基类,包括窗口类和数据接口类(DataInterface类)。窗口类是从QWidget类经过一次或者多次继承而来,也可以是QWidget类本身。MyCustomWidget类从窗口类继承Qt窗口绘制的相关功能。数据接口类(DataInterface类)是数据接收与显示控制的接口类,如下表3和表4分别对该类的成员变量和成员函数进行说明:
表3数据接口类(DataInterface类)成员变量说明
---------------------------------------------
表4数据接口类(DataInterface类)成员函数说明
在MyCustomWidget类中,除了用成员变量的方式定义类的属性外,还需要用宏Q_PROPERTY定义控件的属性,只有用Q_PROPERTY定义的属性才能在页面设计器中进行设置。控件的数据属性存储控件需要的数据数据ID,通过重写虚函数dataID()将控件需要的所有数据ID以列表形式返回,供主程序使用。
所述数据包括数据ID和数据值。为了便于索引,将所有待显示的数据进行唯一ID编号,数据按键值对方式<key,value>进行传输,数据ID即为键值对的键(key),数据值即为键值对的值(value)。
所述页面是由QUiLoader类加载页面文件后生成的QWidget类对象,它是由各种控件通过一定布局组成的。
综上所述,采用本发明所提供的一种基于Qt的高可维护性数据显示系统,该系统数据显示高效、页面与软件松耦合、页面维护可视化、数据展示方式扩展性强、跨平台。本发明能够降低数据显示软件的开发成本、提升数据显示软件的用户体验。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
Claims (2)
1.一种基于Qt的高可维护性数据显示系统,其特征在于,该系统包括主程序、页面设计器;
所述主程序,用于显示页面,所述主程序包括数据显示框架,所述数据显示框架包括页面容器、控件管理器、数据接收器;所述页面容器,用于控制页面的显示;所述控件管理器,用于管理控件的初始化、注册、数据接收、数据显示;所述数据接收器,用于从网络接收数据,并将数据发送给所需要的控件;所述页面容器和所述控件管理器位于所述主程序的主线程中,所述数据接收器位于所述主程序的子线程中,所述页面容器添加控件于所述控件管理器中,所述页面容器控制刷新所述控件管理器中的控件,所述控件管理器和所述数据接收器通过Qt跨线程的信号——槽机制进行通信,实现控件的注册和数据的发送;
所述页面设计器,用于以可视化方式创建、修改页面;
所述页面包括控件,所述控件以插件的形式提供给页面设计器和主程序,所述控件包括自定义窗口类(MyCustomWidget类)和自定义控件接口类(MyCustomWidgetInterface类),所述自定义窗口类(MyCustomWidget类),继承于Qt的窗口类和自定义的数据接口类(DataInterface类),用于根据所接收的数据绘制控件的外观,所述数据接口类(DataInterface类)用于定义控件数据接收与显示控制的接口,所述自定义控件接口类(MyCustomWidgetInterface类),用于提供主程序和页面设计器访问控件所需的接口;
所述页面设计器用所述控件组装形成页面文件,所述主程序通过加载所述控件和所述页面文件动态创建界面得到数据展示,所述数据展示方式的扩展通过升级所述控件实现。
2.根据权利要求1所述的基于Qt的高可维护性数据显示系统,其特征在于,所述数据包括数据ID号和数据值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610067227.7A CN105739984B (zh) | 2016-01-29 | 2016-01-29 | 一种基于Qt的高可维护性数据显示系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610067227.7A CN105739984B (zh) | 2016-01-29 | 2016-01-29 | 一种基于Qt的高可维护性数据显示系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105739984A CN105739984A (zh) | 2016-07-06 |
CN105739984B true CN105739984B (zh) | 2019-08-06 |
Family
ID=56247218
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610067227.7A Active CN105739984B (zh) | 2016-01-29 | 2016-01-29 | 一种基于Qt的高可维护性数据显示系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105739984B (zh) |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106777991A (zh) * | 2016-12-21 | 2017-05-31 | 蓝网科技股份有限公司 | 一种可视化编辑登记页面的方法及系统 |
CN106815029B (zh) * | 2017-01-24 | 2019-10-22 | 南京仁谷系统集成有限公司 | 一种使用Qt进行二维图层的绘制及事件处理方法 |
CN107329842B (zh) * | 2017-06-29 | 2020-11-10 | 福建新和兴信息技术有限公司 | 基于Qt信号槽机制的获取数据的方法及终端 |
CN107832100B (zh) * | 2017-10-27 | 2020-12-04 | 平安普惠企业管理有限公司 | 一种apk插件的加载方法及其终端 |
CN108196848B (zh) * | 2018-01-08 | 2021-04-27 | 武汉斗鱼网络科技有限公司 | 界面嵌入显示方法、装置、用户终端及可读存储介质 |
CN110018890B (zh) * | 2018-01-10 | 2021-07-30 | 武汉斗鱼网络科技有限公司 | 一种线程间的交互方法、电子设备及可读存储介质 |
CN108255564A (zh) * | 2018-01-18 | 2018-07-06 | 北京摩拜科技有限公司 | 应用页面的展示方法及电子设备 |
CN109086036A (zh) * | 2018-07-27 | 2018-12-25 | 中车青岛四方机车车辆股份有限公司 | 一种基于Qt框架的车辆数据显示方法及装置 |
CN110032404B (zh) * | 2018-11-29 | 2021-11-02 | 创新先进技术有限公司 | 一种刷新任务的管理方法及装置 |
CN109656555A (zh) * | 2018-11-30 | 2019-04-19 | 深圳市汇川技术股份有限公司 | 操作界面实现方法、系统、机器人示教器及存储介质 |
CN111324348A (zh) * | 2018-12-17 | 2020-06-23 | 北京华航无线电测量研究所 | 一种导引设备地面操控台的人机交互界面实现方法 |
CN110457036A (zh) * | 2019-07-31 | 2019-11-15 | 上海智显光电科技有限公司 | 一种qml扩展控件的属性设置方法 |
CN110531981A (zh) * | 2019-08-27 | 2019-12-03 | 珠海格力智能装备有限公司 | 视觉软件系统及其应用方法 |
CN110837589A (zh) * | 2019-11-08 | 2020-02-25 | 北京字节跳动网络技术有限公司 | 一种信息展示方法及装置 |
CN113064585B (zh) * | 2021-04-30 | 2023-04-11 | 中国电子科技集团公司第二十九研究所 | 一种基于json模式的实时报文接口自动生成方法 |
CN113539451A (zh) * | 2021-06-04 | 2021-10-22 | 贵州医科大学附属医院 | 基于Qt的医用直线加速器定期检修维护数据记录系统及检修方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101082865A (zh) * | 2007-06-29 | 2007-12-05 | 中兴通讯股份有限公司 | 基于数据驱动的界面自动生成方法 |
CN101393517A (zh) * | 2007-09-20 | 2009-03-25 | 上海宝信软件股份有限公司 | 基于xml和控件实现配置的方法及装置 |
CN102096588A (zh) * | 2011-03-24 | 2011-06-15 | 南京朗睿软件科技有限公司 | 一种包含控件的页面的建立方法 |
CN104598230A (zh) * | 2015-01-12 | 2015-05-06 | 北京中交兴路车联网科技有限公司 | 一种车辆运营系统的前端页面生成方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7424485B2 (en) * | 2004-06-03 | 2008-09-09 | Microsoft Corporation | Method and apparatus for generating user interfaces based upon automation with full flexibility |
-
2016
- 2016-01-29 CN CN201610067227.7A patent/CN105739984B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101082865A (zh) * | 2007-06-29 | 2007-12-05 | 中兴通讯股份有限公司 | 基于数据驱动的界面自动生成方法 |
CN101393517A (zh) * | 2007-09-20 | 2009-03-25 | 上海宝信软件股份有限公司 | 基于xml和控件实现配置的方法及装置 |
CN102096588A (zh) * | 2011-03-24 | 2011-06-15 | 南京朗睿软件科技有限公司 | 一种包含控件的页面的建立方法 |
CN104598230A (zh) * | 2015-01-12 | 2015-05-06 | 北京中交兴路车联网科技有限公司 | 一种车辆运营系统的前端页面生成方法 |
Also Published As
Publication number | Publication date |
---|---|
CN105739984A (zh) | 2016-07-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105739984B (zh) | 一种基于Qt的高可维护性数据显示系统 | |
CN101944204B (zh) | 应用于电力系统的地理信息系统 | |
CN105117835A (zh) | 一种基于b/s架构的电网信息机房三维可视化管理平台 | |
CN102779040A (zh) | 一种生成自定义表单的方法和装置 | |
CN102436473A (zh) | 菜单管理装置和菜单管理方法 | |
CN103593181B (zh) | 一种可配置分布式三维视景仿真系统 | |
CN105138602A (zh) | 一种三维协同平台的构架系统及其使用方法 | |
CN105302532A (zh) | 一种构造系统模型的可视建模编辑器 | |
CN114461200A (zh) | 一种基于云SaaS平台的低代码开发应用及方法 | |
CN103412868A (zh) | 文书生成方法及装置 | |
WO2015196788A1 (zh) | 一种构造界面模型的可视界面建模编辑器 | |
CN110941614A (zh) | 表单生成方法、装置、电子设备及计算机可读存储介质 | |
CN101482828A (zh) | 一种基于hla的通用分布式视景仿真系统及实现方法 | |
Li et al. | Application of MVVM design pattern in MES | |
CN103123660A (zh) | 一种对软硬件系统cad图形化建模的方法 | |
CN102799510B (zh) | 基于可重新配置组件的plc仿真器 | |
CN105224299A (zh) | 一种基于系统元模型构造系统模型的通用建模方法 | |
CN103942046A (zh) | 一种基于对象的统一模型开发方法 | |
CN116471230A (zh) | 基于发布订阅模式的反射内存通讯管理方法及系统 | |
CN108388753A (zh) | 一种sis机柜接线的设计方法、装置、系统和存储介质 | |
CN104809534A (zh) | 业务流程管理系统 | |
CN107273133A (zh) | 一种设备监控图形定义的方法 | |
JPH07146898A (ja) | 設備資産管理システム及びグラフィカルデータベースアクセスシステム | |
CN104166546A (zh) | 一种基于mda的面向dds应用软件的实现方法及系统 | |
CN102354275A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |