Qwt User's Guide: QwtPlotScaleItem Class Reference

Qwt User's Guide 6.2.0

Public Member Functions | List of all members
QwtPlotScaleItem Class Reference

A class which draws a scale inside the plot canvas. More...

`#include <qwt_plot_scaleitem.h>`

Inheritance diagram for QwtPlotScaleItem:

## Public Member Functions
| QwtPlotScaleItem (QwtScaleDraw::Alignment=QwtScaleDraw::BottomScale, const double pos=0.0)
| Constructor for scale item at the position pos. More...
virtual | ~QwtPlotScaleItem ()
| Destructor.
virtual int | rtti () const override
void | setScaleDiv (const QwtScaleDiv &)
| Assign a scale division. More...
const QwtScaleDiv & | scaleDiv () const
void | setScaleDivFromAxis (bool on)
bool | isScaleDivFromAxis () const
void | setPalette (const QPalette &)
QPalette | palette () const
void | setFont (const QFont &)
QFont | font () const
void | setScaleDraw (QwtScaleDraw *)
| Set a scale draw. More...
const QwtScaleDraw * | scaleDraw () const
QwtScaleDraw * | scaleDraw ()
void | setPosition (double pos)
double | position () const
void | setBorderDistance (int)
| Align the scale to the canvas. More...
int | borderDistance () const
void | setAlignment (QwtScaleDraw::Alignment)
virtual void | draw (QPainter *, const QwtScaleMap &xMap, const QwtScaleMap &yMap, const QRectF &canvasRect) const override
| Draw the scale.
virtual void | updateScaleDiv (const QwtScaleDiv &, const QwtScaleDiv &) override
| Update the item to changes of the axes scale division. More...
Public Member Functions inherited from QwtPlotItem
| QwtPlotItem ()
| QwtPlotItem (const QString &title)
| QwtPlotItem (const QwtText &title)
virtual | ~QwtPlotItem ()
| Destroy the QwtPlotItem.
void | attach (QwtPlot *plot)
| Attach the item to a plot. More...
void | detach ()
| This method detaches a QwtPlotItem from any QwtPlot it has been associated with. More...
QwtPlot * | plot () const
| Return attached plot.
void | setTitle (const QString &title)
void | setTitle (const QwtText &title)
const QwtText & | title () const
void | setItemAttribute (ItemAttribute, bool on=true)
bool | testItemAttribute (ItemAttribute) const
void | setItemInterest (ItemInterest, bool on=true)
bool | testItemInterest (ItemInterest) const
void | setRenderHint (RenderHint, bool on=true)
bool | testRenderHint (RenderHint) const
void | setRenderThreadCount (uint numThreads)
uint | renderThreadCount () const
void | setLegendIconSize (const QSize &)
QSize | legendIconSize () const
double | z () const
void | setZ (double z)
| Set the z value. More...
void | show ()
| Show the item.
void | hide ()
| Hide the item.
virtual void | setVisible (bool)
bool | isVisible () const
void | setAxes (QwtAxisId xAxis, QwtAxisId yAxis)
void | setXAxis (QwtAxisId)
QwtAxisId | xAxis () const
| Return xAxis.
void | setYAxis (QwtAxisId)
QwtAxisId | yAxis () const
| Return yAxis.
virtual void | itemChanged ()
virtual void | legendChanged ()
virtual QRectF | boundingRect () const
virtual void | getCanvasMarginHint (const QwtScaleMap &xMap, const QwtScaleMap &yMap, const QRectF &canvasRect, double &left, double &top, double &right, double &bottom) const
| Calculate a hint for the canvas margin. More...
virtual void | updateLegend (const QwtPlotItem *, const QList< QwtLegendData > &)
| Update the item to changes of the legend info. More...
QRectF | scaleRect (const QwtScaleMap &, const QwtScaleMap &) const
| Calculate the bounding scale rectangle of 2 maps. More...
QRectF | paintRect (const QwtScaleMap &, const QwtScaleMap &) const
| Calculate the bounding paint rectangle of 2 maps. More...
virtual QList< QwtLegendData > | legendData () const
| Return all information, that is needed to represent the item on the legend. More...
virtual QwtGraphic | legendIcon (int index, const QSizeF &) const

## Additional Inherited Members
Public Types inherited from QwtPlotItem
enum | RttiValues { Rtti_PlotItem = 0 , Rtti_PlotGrid , Rtti_PlotScale , Rtti_PlotLegend , Rtti_PlotMarker , Rtti_PlotCurve , Rtti_PlotSpectroCurve , Rtti_PlotIntervalCurve , Rtti_PlotHistogram , Rtti_PlotSpectrogram , Rtti_PlotGraphic , Rtti_PlotTradingCurve , Rtti_PlotBarChart , Rtti_PlotMultiBarChart , Rtti_PlotShape , Rtti_PlotTextLabel , Rtti_PlotZone , Rtti_PlotVectorField , Rtti_PlotUserItem = 1000 }
| Runtime type information. More...
enum | ItemAttribute { Legend = 0x01 , AutoScale = 0x02 , Margins = 0x04 }
| Plot Item Attributes. More...
enum | ItemInterest { ScaleInterest = 0x01 , LegendInterest = 0x02 }
| Plot Item Interests. More...
enum | RenderHint { RenderAntialiased = 0x1 }
| Render hints. More...
typedef QFlags< ItemAttribute > | ItemAttributes
typedef QFlags< ItemInterest > | ItemInterests
typedef QFlags< RenderHint > | RenderHints
Protected Member Functions inherited from QwtPlotItem
QwtGraphic | defaultIcon (const QBrush &, const QSizeF &) const
| Return a default icon from a brush. More...

## Detailed Description

A class which draws a scale inside the plot canvas.

QwtPlotScaleItem can be used to draw an axis inside the plot canvas. It might by synchronized to one of the axis of the plot, but can also display its own ticks and labels.

It is allowed to synchronize the scale item with a disabled axis. In plots with vertical and horizontal scale items, it might be necessary to remove ticks at the intersections, by overloading updateScaleDiv().

The scale might be at a specific position (f.e 0.0) or it might be aligned to a canvas border.

Example
  The following example shows how to replace the left axis, by a scale item at the x position 0.0.
  QwtPlotScaleItem *scaleItem = new QwtPlotScaleItem( QwtScaleDraw::RightScale, 0.0 );
  scaleItem->setFont( plot->axisWidget( QwtAxis::YLeft )->font() );
  scaleItem->attach(plot);
  plot->setAxisVisible( QwtAxis::YLeft, false );
  QwtPlot::setAxisVisible
  void setAxisVisible(QwtAxisId, bool on=true)
  Hide or show a specified axis.
  Definition: qwt_plot_axis.cpp:376
  QwtPlot::axisWidget
  const QwtScaleWidget * axisWidget(QwtAxisId) const
  Definition: qwt_plot_axis.cpp:141
  QwtPlotItem::plot
  QwtPlot * plot() const
  Return attached plot.
  Definition: qwt_plot_item.cpp:142
  QwtPlotItem::attach
  void attach(QwtPlot *plot)
  Attach the item to a plot.
  Definition: qwt_plot_item.cpp:98
  QwtPlotScaleItem
  A class which draws a scale inside the plot canvas.
  Definition: qwt_plot_scaleitem.h:47
  QwtPlotScaleItem::setFont
  void setFont(const QFont &)
  Definition: qwt_plot_scaleitem.cpp:183
  QwtPlotScaleItem::QwtPlotScaleItem
  QwtPlotScaleItem(QwtScaleDraw::Alignment=QwtScaleDraw::BottomScale, const double pos=0.0)
  Constructor for scale item at the position pos.
  Definition: qwt_plot_scaleitem.cpp:75
  QwtScaleDraw::RightScale
  @ RightScale
  The scale is right.
  Definition: qwt_scale_draw.h:54
  QwtAxis::YLeft
  @ YLeft
  Y axis left of the canvas.
  Definition: qwt_axis.h:24

Definition at line 46 of file qwt_plot_scaleitem.h.

## Constructor & Destructor Documentation

## ◆ QwtPlotScaleItem()

QwtPlotScaleItem::QwtPlotScaleItem | ( | QwtScaleDraw::Alignment | alignment = `QwtScaleDraw::BottomScale`,
|  | const double | pos = `0.0`
| ) |  |
| explicit

Constructor for scale item at the position pos.

Parameters

  alignment | In case of QwtScaleDraw::BottomScale or QwtScaleDraw::TopScale the scale item is corresponding to the xAxis(), otherwise it corresponds to the yAxis().
  pos | x or y position, depending on the corresponding axis.

See also
  setPosition(), setAlignment()

Definition at line 75 of file qwt_plot_scaleitem.cpp.

## Member Function Documentation

## ◆ borderDistance()

int QwtPlotScaleItem::borderDistance | ( |  | ) | const

Returns
  Distance from a canvas border

See also
  setBorderDistance(), setPosition()

Definition at line 312 of file qwt_plot_scaleitem.cpp.

## ◆ font()

QFont QwtPlotScaleItem::font | ( |  | ) | const

Returns
  tick label font

See also
  setFont()

Definition at line 196 of file qwt_plot_scaleitem.cpp.

## ◆ isScaleDivFromAxis()

bool QwtPlotScaleItem::isScaleDivFromAxis | ( |  | ) | const

Returns
  True, if the synchronization of the scale division with the corresponding axis is enabled.

See also
  setScaleDiv(), setScaleDivFromAxis()

Definition at line 150 of file qwt_plot_scaleitem.cpp.

## ◆ palette()

QPalette QwtPlotScaleItem::palette | ( |  | ) | const

Returns
  palette

See also
  setPalette()

Definition at line 174 of file qwt_plot_scaleitem.cpp.

## ◆ position()

double QwtPlotScaleItem::position | ( |  | ) | const

Returns
  Position of the scale

See also
  setPosition(), setAlignment()

Definition at line 275 of file qwt_plot_scaleitem.cpp.

## ◆ rtti()

int QwtPlotScaleItem::rtti | ( |  | ) | const
| overridevirtual

Returns
  QwtPlotItem::Rtti_PlotScale

Reimplemented from QwtPlotItem.

Definition at line 94 of file qwt_plot_scaleitem.cpp.

## ◆ scaleDiv()

const QwtScaleDiv & QwtPlotScaleItem::scaleDiv | ( |  | ) | const

Returns
  Scale division

Definition at line 115 of file qwt_plot_scaleitem.cpp.

## ◆ scaleDraw() [1/2]

QwtScaleDraw * QwtPlotScaleItem::scaleDraw | ( |  | ) |

Returns
  Scale draw

See also
  setScaleDraw()

Definition at line 245 of file qwt_plot_scaleitem.cpp.

## ◆ scaleDraw() [2/2]

const QwtScaleDraw * QwtPlotScaleItem::scaleDraw | ( |  | ) | const

Returns
  Scale draw

See also
  setScaleDraw()

Definition at line 236 of file qwt_plot_scaleitem.cpp.

## ◆ setAlignment()

void QwtPlotScaleItem::setAlignment | ( | QwtScaleDraw::Alignment | alignment | ) |

Change the alignment of the scale

The alignment sets the orientation of the scale and the position of the ticks:

- QwtScaleDraw::BottomScale: horizontal, ticks below
- QwtScaleDraw::TopScale: horizontal, ticks above
- QwtScaleDraw::LeftScale: vertical, ticks left
- QwtScaleDraw::RightScale: vertical, ticks right

For horizontal scales the position corresponds to QwtPlotItem::yAxis(), otherwise to QwtPlotItem::xAxis().

See also
  scaleDraw(), QwtScaleDraw::alignment(), setPosition()

Definition at line 333 of file qwt_plot_scaleitem.cpp.

## ◆ setBorderDistance()

void QwtPlotScaleItem::setBorderDistance | ( | int | distance | ) |

Align the scale to the canvas.

If distance is >= 0 the scale will be aligned to a border of the contents rectangle of the canvas. If alignment() is QwtScaleDraw::LeftScale, the scale will be aligned to the right border, if it is QwtScaleDraw::TopScale it will be aligned to the bottom (and vice versa),

If distance is < 0 the scale will be at the position().

Parameters

  distance | Number of pixels between the canvas border and the backbone of the scale.

See also
  setPosition(), borderDistance()

Definition at line 296 of file qwt_plot_scaleitem.cpp.

## ◆ setFont()

void QwtPlotScaleItem::setFont | ( | const QFont & | font | ) |

Change the tick label font

See also
  font()

Definition at line 183 of file qwt_plot_scaleitem.cpp.

## ◆ setPalette()

void QwtPlotScaleItem::setPalette | ( | const QPalette & | palette | ) |

Set the palette

See also
  QwtAbstractScaleDraw::draw(), palette()

Definition at line 159 of file qwt_plot_scaleitem.cpp.

## ◆ setPosition()

void QwtPlotScaleItem::setPosition | ( | double | pos | ) |

Change the position of the scale

The position is interpreted as y value for horizontal axes and as x value for vertical axes.

The border distance is set to -1.

Parameters

  pos | New position

See also
  position(), setAlignment()

Definition at line 261 of file qwt_plot_scaleitem.cpp.

## ◆ setScaleDiv()

void QwtPlotScaleItem::setScaleDiv | ( | const QwtScaleDiv & | scaleDiv | ) |

Assign a scale division.

When assigning a scaleDiv the scale division won't be synchronized with the corresponding axis anymore.

Parameters

  scaleDiv | Scale division

See also
  scaleDiv(), setScaleDivFromAxis(), isScaleDivFromAxis()

Definition at line 108 of file qwt_plot_scaleitem.cpp.

## ◆ setScaleDivFromAxis()

void QwtPlotScaleItem::setScaleDivFromAxis | ( | bool | on | ) |

Enable/Disable the synchronization of the scale division with the corresponding axis.

Parameters

  on | true/false

See also
  isScaleDivFromAxis()

Definition at line 127 of file qwt_plot_scaleitem.cpp.

## ◆ setScaleDraw()

void QwtPlotScaleItem::setScaleDraw | ( | QwtScaleDraw * | scaleDraw | ) |

Set a scale draw.

Parameters

  scaleDraw | object responsible for drawing scales.

The main use case for replacing the default QwtScaleDraw is to overload QwtAbstractScaleDraw::label, to replace or swallow tick labels.

See also
  scaleDraw()

Definition at line 212 of file qwt_plot_scaleitem.cpp.

## ◆ updateScaleDiv()

void QwtPlotScaleItem::updateScaleDiv | ( | const QwtScaleDiv & | xScaleDiv,
|  | const QwtScaleDiv & | yScaleDiv
| ) |  |
| overridevirtual

Update the item to changes of the axes scale division.

In case of isScaleDivFromAxis(), the scale draw is synchronized to the correspond axis.

Parameters

  xScaleDiv | Scale division of the x-axis
  yScaleDiv | Scale division of the y-axis

See also
  QwtPlot::updateAxes()

Reimplemented from QwtPlotItem.

Definition at line 445 of file qwt_plot_scaleitem.cpp.