Ok, this is bad, I cannot edit my incorrect post. It looks like all you need to do in QWT 6.3 is to overload QwtPlotZoomer::zoom and make it call QwtPlotRescaller::rescale()
{
public:
QwtPlotRescaler * myPlotRescaler;
virtual void zoom(const QRectF& rect);
}
MyPlotZoomer
::MyPlotZoomer(QwtPlotCanvas* widget,
bool doReplot
) :{
myPlotRescaler = new QwtPlotRescaler( widget );
//For example:
myPlotRescaler->setRescalePolicy( QwtPlotRescaler::Expanding );
myPlotRescaler->setExpandingDirection( QwtPlotRescaler::ExpandBoth );
myPlotRescaler
->setReferenceAxis
(QwtPlot::xBottom);
myPlotRescaler
->setAspectRatio
(QwtPlot::yLeft,
1.0);
myPlotRescaler
->setAspectRatio
(QwtPlot::yRight,
0.0);
myPlotRescaler
->setAspectRatio
(QwtPlot::xTop,
0.0);
}
MyPlotZoomer::zoom(const QRectF& rect)
{
//Most important
myPlotRescaler->rescale();
}
class MyPlotZoomer : public QwtPlotZoomer
{
public:
MyPlotZoomer(QwtPlotCanvas* widget, bool doReplot=true);
QwtPlotRescaler * myPlotRescaler;
virtual void zoom(const QRectF& rect);
}
MyPlotZoomer::MyPlotZoomer(QwtPlotCanvas* widget, bool doReplot) :
QwtPlotZoomer(widget, doReplot)
{
myPlotRescaler = new QwtPlotRescaler( widget );
//For example:
myPlotRescaler->setRescalePolicy( QwtPlotRescaler::Expanding );
myPlotRescaler->setExpandingDirection( QwtPlotRescaler::ExpandBoth );
myPlotRescaler->setReferenceAxis(QwtPlot::xBottom);
myPlotRescaler->setAspectRatio(QwtPlot::yLeft, 1.0);
myPlotRescaler->setAspectRatio(QwtPlot::yRight, 0.0);
myPlotRescaler->setAspectRatio(QwtPlot::xTop, 0.0);
}
MyPlotZoomer::zoom(const QRectF& rect)
{
QwtPlotZoomer::zoom(rect);
//Most important
myPlotRescaler->rescale();
}
To copy to clipboard, switch view to plain text mode
Bookmarks