Я пишу класс MyPlotZoomer
, производный от QwtPlotZoomer
.MyPlotZoomer
отличается от QwtPlotZoomer
тем, что для активации и рисования прямоугольника масштабирования пользователь должен нажать и удерживать клавишу ctrl, щелкнуть и перетащить, а затем отпустить кнопку мыши.
Для этогоЯ переопределил три метода из QWtPlotZoomer
, widgetMouseReleaseEvent
, widgetMousePressEvent
и widgetMouseMoveEvent
следующим образом:
#include <QWidget>
#include "qwt_plot.h"
#include "qwt_plot_zoomer.h"
#include <QMouseEvent>
class MyPlotZoomer : public QwtPlotZoomer
{
public:
// constructor
explicit MyPlotZoomer( QWidget *canvas );
// destructor
// function prototypes
// data
protected:
// function prototypes
virtual void widgetMouseReleaseEvent( QMouseEvent *mouse_event ) override{
if( mouse_event->modifiers() & Qt::ControlModifier ){
QwtPlotZoomer::widgetMouseReleaseEvent( mouse_event );
}
};
virtual void widgetMousePressEvent( QMouseEvent *mouse_event ) override{
if( mouse_event->modifiers() & Qt::ControlModifier ){
QwtPlotZoomer::widgetMousePressEvent( mouse_event );
}
};
virtual void widgetMouseMoveEvent( QMouseEvent *mouse_event ) override{
if( mouse_event->modifiers() & Qt::ControlModifier ){
QwtZoomer::widgetMouseMoveEvent( mouse_event );
}
};
};
Однако нажатие клавиши ctrl и рисование ничего не делают.Прямоугольный зум не отображается.Что я тут не так делаю?