QCustomPlot之Items

Items:Supplementary graphical elements
Items辅助图形元素
QCustomPlot允许放置和锚定图形元素比如文本,箭头,线,矢量图形等等。他们是基于抽象基类QCPAbstractItem。关于Item机制的细节描述和访问内建的items可以在QCPAbstractItem文档中找到。


使用箭头和文本的简单例子

// add the text label at the top:
QCPItemText *textLabel = new QCPItemText(customPlot);
customPlot->addItem(textLabel);
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);
customPlot->addItem(arrow);
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);

注意当plot范围被拖拽时,箭头保持连接到plot的坐标(4,1.6)并且旋转/拉伸。通过灵活的QCustomPlot item定位实现。Item可以被放置在Plot的坐标系中,以绝对像素坐标和以坐标轴矩形大小的分数单元。QCPAbstractPosition和QCPItemPosition的文档中可以发现更多细节关于如何使用不同的可能性。


正如Plottables一样也很容易创建自己的items。这可以通过子类化QCPAbstractItem来实现。


Item Clipping Item裁剪
Items默认被主坐标轴的矩形裁剪,这意味着他们只需要可视化在坐标轴矩形里面的一部分。为了确保item在坐标轴矩形外面的部分也可视化可以通过调用禁止裁剪的函数setClipToAxisRect(false).
另一方面如果你想要Item被裁减对不同的坐标轴矩形,你可以通过setClipAxisRect来指定。一个Item的clipAxisRect属性只可以用来对裁剪行为并且在原则上是独立于坐标轴的。然而这是常见的,对于裁剪的坐标矩形包含被用来为Item定位的坐标轴。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值