QCustomPlot 自带了选框放大功能,所以实现右键框选放大只需要对源码进行小小的修改即可;另添加框选时按下Esc键退出框选。
效果图
右键框选:
放大后图形:
代码修改
由于QCustomPlot自带的框选功能使用左键,所以框选与拖动不能同时进行;对源码中 class QCP_LIB_DECL QCustomPlot : public QWidget 的 void QCustomPlot::mousePressEvent(QMouseEvent *event) 在 mSelectionRect && mSelectionRectMode != QCP::srmNone 后添加 && (event->buttons() & Qt::RightButton) 即可。此时仅在选择了框选功能且右键按下才能触发框选,而不影响左键功能。
另在 class QCustomPlot 中添加按键处理的代码:
void QCustomPlot::keyPressEvent(QKeyEvent *event)
{
if (event->key() == Qt::Key_Escape && mSelectionRect->isActive() && mSelec