QWT 7.0.1
Loading...
Searching...
No Matches
Classes | 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:

Classes

class  AxisData
 
class  PrivateData
 

Public Types

enum  RescalePolicy { Fixed , Expanding , Fitting }
 The rescale policy defines how to rescale the reference axis and their depending axes. More...
 
enum  ExpandingDirection { ExpandUp , ExpandDown , ExpandBoth }
 When rescalePolicy() is set to Expanding its direction depends on ExpandingDirection. More...
 

Public Member Functions

 QwtPlotRescaler (QWidget *canvas, QwtAxisId referenceAxis=QwtAxis::XBottom, RescalePolicy=Expanding)
 Constructor.
 
virtual ~QwtPlotRescaler ()
 Destructor.
 
void setEnabled (bool)
 En/disable the rescaler.
 
bool isEnabled () const
 
void setRescalePolicy (RescalePolicy)
 Change the rescale policy.
 
RescalePolicy rescalePolicy () const
 
void setExpandingDirection (ExpandingDirection)
 Set the direction in which all axis should be expanded.
 
void setExpandingDirection (QwtAxisId, ExpandingDirection)
 Set the direction in which an axis should be expanded.
 
ExpandingDirection expandingDirection (QwtAxisId) const
 
void setReferenceAxis (QwtAxisId)
 Set the reference axis ( see RescalePolicy )
 
QwtAxisId referenceAxis () const
 
void setAspectRatio (double ratio)
 Set the aspect ratio between the scale of the reference axis and the other scales.
 
void setAspectRatio (QwtAxisId, double ratio)
 Set the aspect ratio between the scale of the reference axis and another scale.
 
double aspectRatio (QwtAxisId) const
 
void setIntervalHint (QwtAxisId, const QwtInterval &)
 Set an interval hint for an axis.
 
QwtInterval intervalHint (QwtAxisId) const
 
QWidget * canvas ()
 
const QWidget * canvas () const
 
QwtPlotplot ()
 
const QwtPlotplot () const
 
virtual bool eventFilter (QObject *, QEvent *) QWT_OVERRIDE
 Event filter for the plot canvas.
 
void rescale () const
 Adjust the plot axes scales.
 

Protected Member Functions

virtual void canvasResizeEvent (QResizeEvent *)
 Event handler for resize events of the plot canvas.
 
virtual void rescale (const QSize &oldSize, const QSize &newSize) const
 Adjust the plot axes scales.
 
virtual QwtInterval expandScale (QwtAxisId, const QSize &oldSize, const QSize &newSize) const
 Calculate the new scale interval of a plot axis.
 
virtual QwtInterval syncScale (QwtAxisId, const QwtInterval &reference, const QSize &size) const
 Synchronize an axis scale according to the scale of the reference axis.
 
virtual void updateScales (QwtInterval intervals[QwtAxis::AxisPositions]) const
 Update the axes scales.
 
Qt::Orientation orientation (QwtAxisId) const
 
QwtInterval interval (QwtAxisId) const
 
QwtInterval expandInterval (const QwtInterval &, double width, ExpandingDirection) const
 Expand the interval.
 

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

◆ ExpandingDirection

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.

◆ RescalePolicy

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::QwtPlotRescaler ( QWidget *  canvas,
QwtAxisId  referenceAxis = QwtAxis::XBottom,
RescalePolicy  policy = Expanding 
)
explicit

Constructor.

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

Member Function Documentation

◆ aspectRatio()

double QwtPlotRescaler::aspectRatio ( QwtAxisId  axisId) const
Returns
Aspect ratio between an axis and the reference axis.
Parameters
axisIdAxis
See also
setAspectRatio()

◆ canvas() [1/2]

QWidget * QwtPlotRescaler::canvas ( )
Returns
plot canvas

◆ canvas() [2/2]

const QWidget * QwtPlotRescaler::canvas ( ) const
Returns
plot canvas

◆ canvasResizeEvent()

void QwtPlotRescaler::canvasResizeEvent ( QResizeEvent *  event)
protectedvirtual

Event handler for resize events of the plot canvas.

Parameters
eventResize event
See also
rescale()

◆ expandingDirection()

QwtPlotRescaler::ExpandingDirection QwtPlotRescaler::expandingDirection ( QwtAxisId  axisId) const
Returns
Direction in which an axis should be expanded
Parameters
axisIdAxis
See also
setExpandingDirection()

◆ expandInterval()

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

◆ expandScale()

QwtInterval QwtPlotRescaler::expandScale ( QwtAxisId  axisId,
const QSize &  oldSize,
const QSize &  newSize 
) const
protectedvirtual

Calculate the new scale interval of a plot axis.

Parameters
axisIdAxis
oldSizePrevious size of the canvas
newSizeNew size of the canvas
Returns
Calculated new interval for the axis

◆ interval()

QwtInterval QwtPlotRescaler::interval ( QwtAxisId  axisId) const
protected
Parameters
axisIdAxis
Returns
Normalized interval of an axis

◆ intervalHint()

QwtInterval QwtPlotRescaler::intervalHint ( QwtAxisId  axisId) const
Parameters
axisIdAxis
Returns
Interval hint
See also
setIntervalHint(), RescalePolicy

◆ isEnabled()

bool QwtPlotRescaler::isEnabled ( ) const
Returns
true when enabled, false otherwise
See also
setEnabled, eventFilter()

◆ orientation()

Qt::Orientation QwtPlotRescaler::orientation ( QwtAxisId  axisId) const
protected
Returns
Orientation of an axis
Parameters
axisIdAxis

◆ plot() [1/2]

QwtPlot * QwtPlotRescaler::plot ( )
Returns
plot widget

◆ plot() [2/2]

const QwtPlot * QwtPlotRescaler::plot ( ) const
Returns
plot widget

◆ referenceAxis()

QwtAxisId QwtPlotRescaler::referenceAxis ( ) const
Returns
Reference axis ( see RescalePolicy )
See also
setReferenceAxis()

◆ rescale()

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

◆ rescalePolicy()

QwtPlotRescaler::RescalePolicy QwtPlotRescaler::rescalePolicy ( ) const
Returns
Rescale policy
See also
setRescalePolicy()

◆ setAspectRatio() [1/2]

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()

◆ setAspectRatio() [2/2]

void QwtPlotRescaler::setAspectRatio ( QwtAxisId  axisId,
double  ratio 
)

Set the aspect ratio between the scale of the reference axis and another scale.

The default ratio is 1.0

Parameters
axisIdAxis
ratioAspect ratio
See also
aspectRatio()

◆ setEnabled()

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()

◆ setExpandingDirection() [1/2]

void QwtPlotRescaler::setExpandingDirection ( ExpandingDirection  direction)

Set the direction in which all axis should be expanded.

Parameters
directionDirection
See also
expandingDirection()

◆ setExpandingDirection() [2/2]

void QwtPlotRescaler::setExpandingDirection ( QwtAxisId  axisId,
ExpandingDirection  direction 
)

Set the direction in which an axis should be expanded.

Parameters
axisIdAxis
directionDirection
See also
expandingDirection()

◆ setIntervalHint()

void QwtPlotRescaler::setIntervalHint ( QwtAxisId  axisId,
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
axisIdAxis
intervalAxis
See also
intervalHint(), RescalePolicy

◆ setReferenceAxis()

void QwtPlotRescaler::setReferenceAxis ( QwtAxisId  axisId)

Set the reference axis ( see RescalePolicy )

Parameters
axisIdAxis
See also
referenceAxis()

◆ setRescalePolicy()

void QwtPlotRescaler::setRescalePolicy ( RescalePolicy  policy)

Change the rescale policy.

Parameters
policyRescale policy
See also
rescalePolicy()

◆ syncScale()

QwtInterval QwtPlotRescaler::syncScale ( QwtAxisId  axisId,
const QwtInterval reference,
const QSize &  size 
) const
protectedvirtual

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

Parameters
axisIdAxis
referenceInterval of the reference axis
sizeSize of the canvas
Returns
New interval for axis

◆ updateScales()

void QwtPlotRescaler::updateScales ( QwtInterval  intervals[QwtAxis::AxisPositions]) const
protectedvirtual

Update the axes scales.

Parameters
intervalsScale intervals

The documentation for this class was generated from the following files: