添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
  • QCPItemTracer 追踪者Item
  • QCPAbstractItem 默认存在于 QCustomPlot 的当前层中,默认的当前层为 main ,我们可以通过 setClipToAxisRect setClipAxisRect 设置Item裁切于某个特定的轴矩形,将 setClipToAxisRect 设置为false则Item裁切于 QCustomPlot

    QCPItemAnchor与QCPItemPosition联系与区别

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

  • ptAbsolute 按像素的方式
  • ptViewportRatio 按QCustomPlot可视区域的比例
  • ptAxisRectRatio 按其存在的轴矩形的比例(通过 setAxisRect 函数设置轴矩形)
  • ptPlotCoords 按坐标系位置(通过 setAxes 函数轴)
  • 可以通过 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

    QCPItemCurve
    可以看到QCPItemCurve有四个点决定其位置起点 start 和终点 end 以及两个控制点 startDir endDir ,理解QCPItemCurve的位置需要我们对贝塞尔曲线有所理解

    QCPItemText

    QCPItemText
    可以看到QCPItemText由 position 决定其位置,但是 position 不一定是在文字中心的位置,我们可以通过 setPositionAlignment 设置 position 对齐在文字的哪一个地方,比如要对齐在 topLeft 的位置:setPositionAlignment(Qt::AlignLeft)

    QCPItemTracer

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