前面一章已经记录了 怎么进行框选放大了。
添加如下代码:
customPlot->selectionRect()->setPen(QPen(Qt::black,1,Qt::DashLine));//设置选框的样式:虚线
customPlot->selectionRect()->setBrush(QBrush(QColor(0,0,100,50)));//设置选框的样式:半透明浅蓝
customPlot->setSelectionRectMode(QCP::SelectionRectMode::srmZoom);
不过使用官方的框选放大功能,也带来一个毛病,就是鼠标左、右、中,三个键都变成了框选放大,失去了拖拽平移功能,这用起来很不爽,我们改一下官方源码
怎么修改。
步骤一: 我们知道 setInteractions函数API是实现拽轴的范围、滚动缩放轴的范围,左键点选图层的功能 我们进入源代码找到这个函数就可以了(还不知道setInteractions函数的 可以我前面一篇),我们这把它限制在右键按下的前提下,
// 支持鼠标拖拽轴的范围、滚动缩放轴的范围,左键点选图层(每条曲线独占一个图层)
customPlot->setInteractions(QCP::iRangeDrag | QCP::iRangeZoom | QCP::iSelectPlottables);
二 :要改变控制方式 我们就需要修改源代码。
2.1 修改地方一:如下图
2.2: 修改地方二:如下图 17823行