其他分享
首页 > 其他分享> > 8.QCustomPlot 增加图形元素

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物品系统可以实现的功能的更高级,更真实的演示,请参阅“特殊用例”教程“带有物品的动态轴标签”

 

标签:项目,QCPAbstractItem,元素,textLabel,QCustomPlot,绘图,arrow,图形,rect
来源: https://blog.csdn.net/wjffsx/article/details/114652606