这个类是在图表中所有的对象的基类
详细描述
这个抽象基类是所有的在图表中的基类
在QCustomPlot中,单元们都是一个一个的追加的图形单元,不管是标签还是坐标轴,而绘图仪总是与两个轴相连,因此只能绘制坐标图,元素可以放置在绝对坐标系的任何坐标上,每一个指定的坐标都至少有一个QCPItemPositon成员对象,可以用来控制位置,一些对象有多个坐标位置,因此可能有很多的坐标成员,比如(QCPItemRect有一个左上角和右下角的位置)
这个抽象的基类定义了很多基本的比如是否可见,是否可裁剪等的接口,一旦这个类是抽象的,他是不能被实例化的,使用它的子类来实例化或者自己创建定制的子类
内置的元素如下
- QCPLitemLine: 有一个起始点和一个结束点定义的线段,通常在开始和结束有不同端点表现
- QCPItemStraightLine: 由一个开始点和一个结束点定义的直线,是无限延长没有端点的
- QCPItemCurve: 由一个开始点和结束点,还有两个控制点构成的线段,很多线段的端点都有不同的表现
- QCPItemRect: 一个矩形
- QCPItemEllipse: 一个椭圆形
- QCPItemPixmap: 一个任意的像素图
- QCPItemText: 一个字符串标签
- QCPItemBracket: 一个可以突出重点的括号
- 一个可以附加到QCPGraph上并粘着它的数据点的项,给定一个键坐标。
裁剪
元素可以默认被裁剪成主要的坐标轴矩形,使里面或外面有效等
先不翻译了,暂时还用不到,先知道有这么一个东西,详细看
使用方法
首先先构造一个像附加在图表中的元素
QCPItemLine *line = new QCPItemLine(customPlot);
默认情况下,这个元素的位置是由x轴和y轴绑定的,所以我们看设置图表的坐标,比如线段的开始和结束
line->start->setCoords(-0.1, 0.8);
line->end->setCoords(1.1, 0.2);
如果我们不想这根线位于图表的坐标中,而是在一个不同的坐标宏,比如在QCustomPlot的绝对坐标系中,我们需要向下面的代码一样改变位置
line->start->setType(QCPItemPosition::ptAbsolute);
line->end->setType(QCPItemPosition::ptAbsolute);
然后我们可以设置坐标系
line->start->setCoords(100, 200);
line->end->setCoords(450, 320);
最后在整个图表中使能这个线
line->setClipToAxisRect(false);