首先在void QCustomPlot::mousePressEvent(QMouseEvent *event)函数定义中(大约qcustomplot.cpp的15583行左右)
if (mSelectionRect && mSelectionRectMode != QCP::srmNone)
{
if (mSelectionRectMode != QCP::srmZoom || qobject_cast<QCPAxisRect*>(axisRectAt(mMousePressPos))) // in zoom mode only activate selection rect if on an axis rect
mSelectionRect->startSelection(event);
} else{
...}
修改如下:
if (event->button() == Qt::LeftButton && mSelectionRect && mSelectionRectMode != QCP::srmNone)
{
if (mSelectionRectMode != QCP::srmZoom || qobject_cast<QCPAxisRect*>(axisRectAt(mMousePressPos))) // in zoom mode only activate selection rect if on an axis rect
mSelectionRect->startSelection(event);
} else if(event->button() != Qt::LeftButton){
...}
然后在void QCPAxisRect::mousePressEvent(QMouseEvent *event, const QVariant &details)中
将(约在qcustomplot.cpp的18545行)
if (event->buttons() & Qt::LefttButton)
修改为
if (event->buttons() & Qt::RightButton)
然后得到效果如下:
qcustomplot交互