8.QCustomPlot 增加图形元素

项目:增加图形元素

https://www.qcustomplot.com/index.php/tutorials/items

QCustomPlot允许在绘图上放置和锚定图形元素,例如文本,箭头,线条,矩形,任意像素图等。它们基于抽象基类QCPAbstractItem。有关项目机制和当前可用的内置项目的详细说明,可以在QCPAbstractItem的文档中找到

使用箭头和文字的基本示例

本示例说明如何创建始终位于rect轴顶部的文本标签以及将绘图坐标中的点与该标签连接的箭头。

 

// add the text label at the top:
QCPItemText *textLabel = new QCPItemText(customPlot);
textLabel->setPositionAlignment(Qt::AlignTop|Qt::AlignHCenter);
textLabel->position->setType(QCPItemPosition::ptAxisRectRatio);
textLabel->position->setCoords(0.5, 0); // place position at center/top of axis rect
textLabel->setText("Text Item Demo");
textLabel->setFont(QFont(font().family(), 16)); // make font a bit larger
textLabel->setPen(QPen(Qt::black)); // show black border around text
 
// add the arrow:
QCPItemLine *arrow = new QCPItemLine(customPlot);
arrow->start->setParentAnchor(textLabel->bottom);
arrow->end->setCoords(4, 1.6); // point to (4, 1.6) in x-y-plot coordinates
arrow->setHead(QCPLineEnding::esSpikeArrow);

请注意,即使在拖动绘图范围时,箭头仍保持附着在绘图坐标(4,1.6)上,并相应地旋转/拉伸。这是通过QCustomPlot项目定位的灵活性实现的。可以将项目放置在绘图坐标,绝对像素坐标和轴rect大小的小数单位中。的文档QCPAbstractItemQCPItemPosition更加详细地介绍了如何使用这些不同的可能性。

与绘图表一样,创建自己的项目也很容易。这可以通过创建自己的QCPAbstractItem子类来完成。请参见QCPAbstractItem文档中的子类化部分。

项目剪裁

默认情况下,项目被裁剪到主轴矩形,这意味着它们仅在主轴矩形内部可见。要使某个项目在该轴的矩形外部可见,请通过调用禁用裁剪setClipToAxisRect(false)

另一方面,如果您希望将项目剪切到其他轴rect,则可以通过进行指定setClipAxisRect。项目的此clipAxisRect属性仅用于剪切行为,并且原则上与项目可能通过其位置成员绑定的坐标轴无关(请参见参考资料)。但是,通常用于裁剪的轴rect也包含用于项目位置的轴。QCPItemPosition::setAxes

更高级的物品使用

有关QCustomPlot物品系统可以实现的功能的更高级,更真实的演示,请参阅“特殊用例”教程“带有物品的动态轴标签”

 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值