QCustomPlot之Item(十)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了QCustomPlot之Item(十)相关的知识,希望对你有一定的参考价值。

参考技术A

在QCustomPlot中,所有的Item都继承自 QCPAbstractItem ,QCustomPlot给我们提供了一些Item

QCPAbstractItem 默认存在于 QCustomPlot 的当前层中,默认的当前层为 main ,我们可以通过 setClipToAxisRect 和 setClipAxisRect 设置Item裁切于某个特定的轴矩形,将 setClipToAxisRect 设置为false则Item裁切于 QCustomPlot

QCPItemPosition继承自QCPItemAnchor,QCPItemAnchor用于给QCPItemPosition定位用的,QCPItemPosition则表示了Item的位置,一个Item可以有多个QCPItemAnchor和QCPItemPosition
我们主要理解QCPItemPosition是如何决定Item的位置的,它有四种位置类型:

可以通过 setType 、 setTypeX 、 setTypeY 函数设置x、y方向的位置类型,然后通过 setCoords 设置其位置, setCoords 是跟 setType 设置的类型相关的,Item的位置还跟它锚定的父锚点QCPItemAnchor相关,可以通过 setParentAnchor 、 setParentAnchorX 、 setParentAnchorY 函数设置x、y方向的父锚点,父锚点决定了其起点位置, 当设置父锚点后,type类型会变为ptAbsolute按像素的方式

我们可以直接通过 setPixelPosition 设置Item的像素位置,而不用管 setType 的类型是什么,通过 pixelPosition 返回Item的像素位置

以下图片空心圆为QCPItemAnchor,实心圆为QCPItemPosition

QCPItemBracket有四种类型:

tracer是比较常用的一个Item,它主要用来实时跟踪 QCPGraph 的某个数据点,QCPItemTracer也是用一个 position 来决定其位置

QCPItemTracer有五种风格

QCPItemTracer通过函数 setGraph 和 setGraphKey 设置要跟踪的图表以及数据点, setGraph(nullptr) 可以使QCPItemTracer得位置是任意的。QCPItemTracer的位置还跟 setInterpolating 函数有关,当 setInterpolating 为true时,启用线性插值,这时候QCPItemTracer的位置是精确地在我们设置的位置,并且对 value 轴的值进行线性插值;为false的时候QCPItemTracer的位置是最接近于这个位置的 key 值点的位置

以上是关于QCustomPlot之Item(十)的主要内容,如果未能解决你的问题,请参考以下文章

Qwt 替代品

QCustomPlot之层和布局(四)

Qt 之 QCustomPlot(图形库)

QCustomPlot(三):图形绘制基础之样式修改

QCustomPlot之参数曲线(七)

QCustomplot学习使用分享