目录
一、图层介绍
- 一、图层介绍
- 二、层的刷新模式
- 三、布局方式
QCustomPlot类管理着所有的图层,它默认自带了六个图层,分别是:
- 背景层background
- 网格层grid
- 绘图层main
- 坐标轴层axes
- 图例层legend
- overlay层overlay
依据层的顺序的不同,绘制的顺序也不同,越在底下的层越早绘制,当前层默认为绘图层main。下图中就是QCPAxisRect。
层有两种刷新模式:
- lmLogical:只用于渲染的顺序,并且与相邻的lmLogical层共享绘图缓存(注意这里的相邻,如果前一个层是lmBuffered模式,则会新建一个绘图缓存用于绘图)
- lmBuffered:拥有自己的绘图缓存,并且可以单独的刷新(调用
QCPLayer::replot
函数)
默认只有overlay层启用了lmBuffered单独绘制机制,其它层都共享一个绘图缓存,因为overlay层主要是用于存放悬浮与图表上的item项,需要频繁的刷新,启用了lmBuffered的层会多占用内存。
三、布局方式在QCustomPlot中,布局方式只有两种:
- QCPLayoutGrid:网格布局
- QCPLayoutInset:内嵌式布局, 这种布局的作用是把子元素与布局的边界对齐或者将其放置在布局内的任意位置(图例QCPLegend就被放置在此布局内),严格来说这个并不算布局
继承关系图如下:
这两种布局都继承自QCPLayout,而QCPLayout继承自QCPLayoutElement布局元素,所以一个布局可以包含另一个布局,布局内的元素都要继承自QCPLayoutElement。