找回密码
 立即注册
首页 业界区 业界 Qt技巧笔记(十二):QCustomPlot绘图库结构分析 ...

Qt技巧笔记(十二):QCustomPlot绘图库结构分析

刃减胸 昨天 16:55
Qt技巧笔记(十二):QCustomPlot绘图库结构分析

​        学习一个陌生的库,我们首先要明确它有什么用,可以结合库官方examples,学习怎么简单的用。但是如果要对该库有一个全面的认识,还是需要了解它的开发思路和库结构。
QCustomPlot的架构设计分析且模块化,主要围绕图层图元布局三大核心概念构建。理解三者的关系,是掌握这个绘图库的关键。我们可以把QCustomPlot 想像成一个智能的空白画布,它是所有绘图活动的核心管理者。他不能仅负责与Qt的事件系统交互,更关键的是,它内部组织和协调几个关键部分:

  • 图层列表:按顺序管理着所有用于绘制不同内容的图层。
  • 布局系统:一个顶级的网格布局(plotLayout),负责所有可见元素(如坐标矩形、图例)的自动定位和尺寸调整。
  • 各种图元:包括用于展示数据的plottable(如曲线、柱状体)和用于标识、装饰的items(如文本、箭头)。
下面的表格为你梳理了构成QCustomPlot的核心类以及各自得作用:
核心积木基类主要用途常见子类举例图层 (Layer)QCPLayer控制不同元素的绘制顺序,实现分层渲染背景层、网格层、主图层、坐标轴层等可绘制对象 (Layerable)QCPLayerable所有可绘制元素的总基类,必须属于某个图层几乎所有下面的类都派生自它数据图元 (Plottable)QCPAbstractPlottable用于绘制和展示具体的数据系列QCPGraph (折线图)、QCPBars (柱状图)标识图元 (Item)QCPAbstractItem用于添加辅助性的图形或文字标记,通常不与数据强绑定QCPItemLine (线段)、QCPItemText (文本)布局元素 (Layout Element)QCPLayoutElement可被布局系统管理的元素,用于界面结构组织QCPAxisRect (坐标轴矩形)、QCPLegend (图例)其官方架构图(类关系图):
classDiagram    class QCustomPlot    class QCPLayer    class QCPLayerable    class QCPAbstractItem    class QCPItemAnchor    class QCPItemPosition    class QCPAxis    class QCPRange    class QCPGrid    class QCPAbstractPlottable    class QCPLayoutElement    class QCPLayoutGrid    class QCPLayoutInset    class QCPLegend    class QCPAbstractLegendItem    class QCPPlottableLegendItem    QCustomPlot --> QCPLayer : has one/multiple    QCPLayer --> QCPLayerable : contains and defines order    QCPLayerable  QCPAbstractLegendItem : has multiple    QCPAbstractLegendItem

相关推荐

您需要登录后才可以回帖 登录 | 立即注册