Qwt User's Guide  6.1.1
 All Classes Functions Variables Typedefs Enumerations Enumerator Pages
Public Types | Public Member Functions | Protected Member Functions | List of all members
QwtPlotRescaler Class Reference

QwtPlotRescaler takes care of fixed aspect ratios for plot scales. More...

#include <qwt_plot_rescaler.h>

Inheritance diagram for QwtPlotRescaler:
Inheritance graph
[legend]

Public Types

enum  RescalePolicy { Fixed, Expanding, Fitting }
 
enum  ExpandingDirection { ExpandUp, ExpandDown, ExpandBoth }
 

Public Member Functions

 QwtPlotRescaler (QWidget *canvas, int referenceAxis=QwtPlot::xBottom, RescalePolicy=Expanding)
 
virtual ~QwtPlotRescaler ()
 Destructor.
 
void setEnabled (bool)
 En/disable the rescaler. More...
 
bool isEnabled () const
 
void setRescalePolicy (RescalePolicy)
 
RescalePolicy rescalePolicy () const
 
void setExpandingDirection (ExpandingDirection)
 
void setExpandingDirection (int axis, ExpandingDirection)
 
ExpandingDirection expandingDirection (int axis) const
 
void setReferenceAxis (int axis)
 
int referenceAxis () const
 
void setAspectRatio (double ratio)
 
void setAspectRatio (int axis, double ratio)
 
double aspectRatio (int axis) const
 
void setIntervalHint (int axis, const QwtInterval &)
 
QwtInterval intervalHint (int axis) const
 
QWidget * canvas ()
 
const QWidget * canvas () const
 
QwtPlotplot ()
 
const QwtPlotplot () const
 
virtual bool eventFilter (QObject *, QEvent *)
 Event filter for the plot canvas.
 
void rescale () const
 Adjust the plot axes scales.
 

Protected Member Functions

virtual void canvasResizeEvent (QResizeEvent *)
 
virtual void rescale (const QSize &oldSize, const QSize &newSize) const
 
virtual QwtInterval expandScale (int axis, const QSize &oldSize, const QSize &newSize) const
 
virtual QwtInterval syncScale (int axis, const QwtInterval &reference, const QSize &size) const
 
virtual void updateScales (QwtInterval intervals[QwtPlot::axisCnt]) const
 
Qt::Orientation orientation (int axis) const
 
QwtInterval interval (int axis) const
 
QwtInterval expandInterval (const QwtInterval &, double width, ExpandingDirection) const
 

Detailed Description

QwtPlotRescaler takes care of fixed aspect ratios for plot scales.

QwtPlotRescaler auto adjusts the axes of a QwtPlot according to fixed aspect ratios.

Member Enumeration Documentation

When rescalePolicy() is set to Expanding its direction depends on ExpandingDirection

Enumerator
ExpandUp 

The upper limit of the scale is adjusted.

ExpandDown 

The lower limit of the scale is adjusted.

ExpandBoth 

Both limits of the scale are adjusted.

The rescale policy defines how to rescale the reference axis and their depending axes.

See Also
ExpandingDirection, setIntervalHint()
Enumerator
Fixed 

The interval of the reference axis remains unchanged, when the geometry of the canvas changes. All other axes will be adjusted according to their aspect ratio.

Expanding 

The interval of the reference axis will be shrunk/expanded, when the geometry of the canvas changes. All other axes will be adjusted according to their aspect ratio.

The interval, that is represented by one pixel is fixed.

Fitting 

The intervals of the axes are calculated, so that all axes include their interval hint.

Constructor & Destructor Documentation

QwtPlotRescaler::QwtPlotRescaler ( QWidget *  canvas,
int  referenceAxis = QwtPlot::xBottom,
RescalePolicy  policy = Expanding 
)
explicit

Constructor

Parameters
canvasCanvas
referenceAxisReference axis, see RescalePolicy
policyRescale policy
See Also
setRescalePolicy(), setReferenceAxis()

Member Function Documentation

double QwtPlotRescaler::aspectRatio ( int  axis) const
Returns
Aspect ratio between an axis and the reference axis.
Parameters
axisAxis index ( see QwtPlot::AxisId )
See Also
setAspectRatio()
QWidget * QwtPlotRescaler::canvas ( )
Returns
plot canvas
const QWidget * QwtPlotRescaler::canvas ( ) const
Returns
plot canvas
void QwtPlotRescaler::canvasResizeEvent ( QResizeEvent *  event)
protectedvirtual

Event handler for resize events of the plot canvas

Parameters
eventResize event
See Also
rescale()
QwtPlotRescaler::ExpandingDirection QwtPlotRescaler::expandingDirection ( int  axis) const
Returns
Direction in which an axis should be expanded
Parameters
axisAxis index ( see QwtPlot::AxisId )
See Also
setExpandingDirection()
QwtInterval QwtPlotRescaler::expandInterval ( const QwtInterval interval,
double  width,
ExpandingDirection  direction 
) const
protected

Expand the interval

Parameters
intervalInterval to be expanded
widthDistance to be added to the interval
directionDirection of the expand operation
Returns
Expanded interval
QwtInterval QwtPlotRescaler::expandScale ( int  axis,
const QSize &  oldSize,
const QSize &  newSize 
) const
protectedvirtual

Calculate the new scale interval of a plot axis

Parameters
axisAxis index ( see QwtPlot::AxisId )
oldSizePrevious size of the canvas
newSizeNew size of the canvas
Returns
Calculated new interval for the axis
QwtInterval QwtPlotRescaler::interval ( int  axis) const
protected
Parameters
axisAxis index ( see QwtPlot::AxisId )
Returns
Normalized interval of an axis
QwtInterval QwtPlotRescaler::intervalHint ( int  axis) const
Parameters
axisAxis, see QwtPlot::Axis
Returns
Interval hint
See Also
setIntervalHint(), RescalePolicy
bool QwtPlotRescaler::isEnabled ( ) const
Returns
true when enabled, false otherwise
See Also
setEnabled, eventFilter()
Qt::Orientation QwtPlotRescaler::orientation ( int  axis) const
protected
Returns
Orientation of an axis
Parameters
axisAxis index ( see QwtPlot::AxisId )
QwtPlot * QwtPlotRescaler::plot ( )
Returns
plot widget
const QwtPlot * QwtPlotRescaler::plot ( ) const
Returns
plot widget
int QwtPlotRescaler::referenceAxis ( ) const
Returns
Reference axis ( see RescalePolicy )
See Also
setReferenceAxis()
void QwtPlotRescaler::rescale ( const QSize &  oldSize,
const QSize &  newSize 
) const
protectedvirtual

Adjust the plot axes scales

Parameters
oldSizePrevious size of the canvas
newSizeNew size of the canvas
QwtPlotRescaler::RescalePolicy QwtPlotRescaler::rescalePolicy ( ) const
Returns
Rescale policy
See Also
setRescalePolicy()
void QwtPlotRescaler::setAspectRatio ( double  ratio)

Set the aspect ratio between the scale of the reference axis and the other scales. The default ratio is 1.0

Parameters
ratioAspect ratio
See Also
aspectRatio()
void QwtPlotRescaler::setAspectRatio ( int  axis,
double  ratio 
)

Set the aspect ratio between the scale of the reference axis and another scale. The default ratio is 1.0

Parameters
axisAxis index ( see QwtPlot::AxisId )
ratioAspect ratio
See Also
aspectRatio()
void QwtPlotRescaler::setEnabled ( bool  on)

En/disable the rescaler.

When enabled is true an event filter is installed for the canvas, otherwise the event filter is removed.

Parameters
ontrue or false
See Also
isEnabled(), eventFilter()
void QwtPlotRescaler::setExpandingDirection ( ExpandingDirection  direction)

Set the direction in which all axis should be expanded

Parameters
directionDirection
See Also
expandingDirection()
void QwtPlotRescaler::setExpandingDirection ( int  axis,
ExpandingDirection  direction 
)

Set the direction in which an axis should be expanded

Parameters
axisAxis index ( see QwtPlot::AxisId )
directionDirection
See Also
expandingDirection()
void QwtPlotRescaler::setIntervalHint ( int  axis,
const QwtInterval interval 
)

Set an interval hint for an axis

In Fitting mode, the hint is used as minimal interval that always needs to be displayed.

Parameters
axisAxis, see QwtPlot::Axis
intervalAxis
See Also
intervalHint(), RescalePolicy
void QwtPlotRescaler::setReferenceAxis ( int  axis)

Set the reference axis ( see RescalePolicy )

Parameters
axisAxis index ( QwtPlot::Axis )
See Also
referenceAxis()
void QwtPlotRescaler::setRescalePolicy ( RescalePolicy  policy)

Change the rescale policy

Parameters
policyRescale policy
See Also
rescalePolicy()
QwtInterval QwtPlotRescaler::syncScale ( int  axis,
const QwtInterval reference,
const QSize &  size 
) const
protectedvirtual

Synchronize an axis scale according to the scale of the reference axis

Parameters
axisAxis index ( see QwtPlot::AxisId )
referenceInterval of the reference axis
sizeSize of the canvas
Returns
New interval for axis
void QwtPlotRescaler::updateScales ( QwtInterval  intervals[QwtPlot::axisCnt]) const
protectedvirtual

Update the axes scales

Parameters
intervalsScale intervals