Qt-Qcustomplot坐标轴缩放、拖动等调整

Qcustomplot入门请点击: Qcustomplot入门教程
Qcustomplot中可以设置坐标轴属性:
1、 setInteractions函数

//设置基本坐标轴(左侧Y轴和下方X轴)可拖动、可缩放、曲线可选、legend可选、设置伸缩比例,使所有图例可见
CustomPlot->setInteractions(QCP::iRangeDrag|QCP::iRangeZoom| QCP::iSelectAxes |
                                  QCP::iSelectLegend | QCP::iSelectPlottables);

QCP还有iMultiSelect等其他属性,读者可自行尝试
这种方法只能设置基础坐标轴

2、setRangeZoomAxes函数
使坐标轴可以伸缩
在2.0系列版本的Qcustomplot中,可以对通过坐标轴列表对两套坐标轴进行设置:

   QList<QCPAxis*> axes;
   axes << CustomPlot->yAxis2 << CustomPlot->xAxis2 << CustomPlot->yAxis << CustomPlot->xAxis;
   CustomPlot->axisRect()->setRangeZoomAxes(axes);

但在1.0系列版本中只能设置一套,并且两套坐标轴都进行设置只能有一套坐标轴起作用:

CustomPlot->axisRect()->setRangeZoomAxes(ui->widget->xAxis, ui->widget->yAxis);

3、根据图像最高点最低点自动缩放坐标轴
绘制实时数据时,需要每次数据绘制完成就调用此函数,否则不会生效(是根据当前点调整坐标)。

//Y轴
CustomPlot->graph(2)->rescaleValueAxis(true); 
//X轴 
CustomPlot->graph(2)->rescaleKeyAxis(true); 
//X、Y轴 
CustomPlot->graph(2)->rescaleAxes(true); 

4、setRangeZoomFactor
设置伸缩比例 setRangeZoomFactor( double horizontalFactor, double verticalFactor );可以分别设定X,Y方向

Customplot->axisRect()->setRangeZoomFactor(1.2,2.2);/x方向为1.2

5、重载鼠标滚轮事件和按钮事件
这种方法相对来说比较麻烦,尝试了上面的方法后我放弃了使用这种方法,但这种方法的灵活性是以上方法无法比拟的

其他Qcustomplot坐标轴属性可参考:
https://www.cnblogs.com/swarmbees/p/6059812.html

你可能感兴趣的:(Qcustomplot,QT,Qt之路,Qt,Qcustomplot)