QwtPolarGrid Class Reference

An item which draws scales and grid lines on a polar plot. More...

`#include <qwt_polar_grid.h>`

Inheritance diagram for QwtPolarGrid:

## Public Types

enum | DisplayFlag { SmartOriginLabel = 1 , HideMaxRadiusLabel = 2 , ClipAxisBackground = 4 , SmartScaleDraw = 8 , ClipGridLines = 16 }
enum | GridAttribute { AutoScaling = 0x01 }
| Grid attributes. More...
typedef QFlags< DisplayFlag > | DisplayFlags
typedef QFlags< GridAttribute > | GridAttributes
Public Types inherited from QwtPolarItem
enum | RttiValues { Rtti_PolarItem = 0 , Rtti_PolarGrid , Rtti_PolarMarker , Rtti_PolarCurve , Rtti_PolarSpectrogram , Rtti_PolarUserItem = 1000 }
| Runtime type information. More...
enum | ItemAttribute { Legend = 0x01 , AutoScale = 0x02 }
| Plot Item Attributes. More...
enum | RenderHint { RenderAntialiased = 0x01 }
| Render hints. More...
typedef QFlags< ItemAttribute > | ItemAttributes
typedef QFlags< RenderHint > | RenderHints

## Public Member Functions

| QwtPolarGrid ()
| Constructor. More...
virtual | ~QwtPolarGrid ()
| Destructor.
virtual int | rtti () const override
void | setDisplayFlag (DisplayFlag, bool on=true)
bool | testDisplayFlag (DisplayFlag) const
void | setGridAttribute (GridAttribute, bool on=true)
| Specify an attribute for the grid. More...
bool | testGridAttribute (GridAttribute) const
void | showGrid (int scaleId, bool show=true)
bool | isGridVisible (int scaleId) const
void | showMinorGrid (int scaleId, bool show=true)
bool | isMinorGridVisible (int scaleId) const
void | showAxis (int axisId, bool show=true)
bool | isAxisVisible (int axisId) const
void | setPen (const QPen &p)
void | setFont (const QFont &)
void | setMajorGridPen (const QPen &p)
void | setMajorGridPen (int scaleId, const QPen &p)
QPen | majorGridPen (int scaleId) const
void | setMinorGridPen (const QPen &p)
void | setMinorGridPen (int scaleId, const QPen &p)
QPen | minorGridPen (int scaleId) const
void | setAxisPen (int axisId, const QPen &p)
QPen | axisPen (int axisId) const
void | setAxisFont (int axisId, const QFont &p)
QFont | axisFont (int axisId) const
void | setScaleDraw (int axisId, QwtScaleDraw *)
| Set a scale draw. More...
const QwtScaleDraw * | scaleDraw (int axisId) const
QwtScaleDraw * | scaleDraw (int axisId)
void | setAzimuthScaleDraw (QwtRoundScaleDraw *)
| Set a scale draw for the azimuth scale. More...
const QwtRoundScaleDraw * | azimuthScaleDraw () const
QwtRoundScaleDraw * | azimuthScaleDraw ()
virtual void | draw (QPainter *p, const QwtScaleMap &azimuthMap, const QwtScaleMap &radialMap, const QPointF &pole, double radius, const QRectF &rect) const override
virtual void | updateScaleDiv (const QwtScaleDiv &azimuthMap, const QwtScaleDiv &radialMap, const QwtInterval &) override
| Update the item to changes of the axes scale division. More...
virtual int | marginHint () const override
Public Member Functions inherited from QwtPolarItem
| QwtPolarItem (const QwtText &title=QwtText())
virtual | ~QwtPolarItem ()
| Destroy the QwtPolarItem.
void | attach (QwtPolarPlot *plot)
| Attach the item to a plot. More...
void | detach ()
| This method detaches a QwtPolarItem from the QwtPolarPlot it has been associated with. More...
QwtPolarPlot * | plot () const
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 | setRenderHint (RenderHint, bool on=true)
bool | testRenderHint (RenderHint) const
void | setRenderThreadCount (uint numThreads)
uint | renderThreadCount () 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
virtual void | itemChanged ()
virtual void | legendChanged ()
virtual QwtInterval | boundingInterval (int scaleId) const
void | setLegendIconSize (const QSize &)
QSize | legendIconSize () const
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

## Protected Member Functions

void | drawRays (QPainter *, const QRectF &, const QPointF &pole, double radius, const QwtScaleMap &azimuthMap, const QList< double > &) const
void | drawCircles (QPainter *, const QRectF &, const QPointF &pole, const QwtScaleMap &radialMap, const QList< double > &) const
void | drawAxis (QPainter *, int axisId) const

## Detailed Description

An item which draws scales and grid lines on a polar plot.

The QwtPolarGrid class can be used to draw a coordinate grid. A coordinate grid consists of major and minor gridlines. The locations of the gridlines are determined by the azimuth and radial scale divisions.

QwtPolarGrid is also responsible for drawing the axis representing the scales. It is possible to display 4 radial and one azimuth axis.

Whenever the scale divisions of the plot widget changes the grid is synchronized by updateScaleDiv().

See also
  QwtPolarPlot, QwtPolar::Axis

Definition at line 41 of file qwt_polar_grid.h.

## Member Typedef Documentation

## DisplayFlags

typedef QFlags<DisplayFlag > QwtPolarGrid::DisplayFlags

An ORed combination of DisplayFlag values.

Definition at line 88 of file qwt_polar_grid.h.

## GridAttributes

typedef QFlags<GridAttribute > QwtPolarGrid::GridAttributes

An ORed combination of GridAttribute values.

Definition at line 103 of file qwt_polar_grid.h.

## Member Enumeration Documentation

## DisplayFlag

enum QwtPolarGrid::DisplayFlag

Mysterious flags trying to avoid conflicts, when painting the scales and grid lines.

The default setting enables all flags.

See also
  setDisplayFlag(), testDisplayFlag()

Enumerator
SmartOriginLabel | Try to avoid situations, where the label of the origin is painted over another axis.
HideMaxRadiusLabel | Often the outermost tick of the radial scale is close to the canvas border. With HideMaxRadiusLabel enabled it is not painted.
ClipAxisBackground | The tick labels of the radial scales might be hard to read, when they are painted on top of the radial grid lines ( or on top of a curve/spectrogram ). When ClipAxisBackground the bounding rect of each label is added to the clip region.
SmartScaleDraw | Don't paint the backbone of the radial axes, when they are very close to a line of the azimuth grid.
ClipGridLines | All grid lines are clipped against the plot area before being painted. When the plot is zoomed in this will have an significant impact on the performance of the painting code.

Definition at line 52 of file qwt_polar_grid.h.

## GridAttribute

enum QwtPolarGrid::GridAttribute

Grid attributes.

See also
  setGridAttributes(), testGridAttributes()

Enumerator
AutoScaling | When AutoScaling is enabled, the radial axes will be adjusted to the interval, that is currently visible on the canvas plot.

Definition at line 94 of file qwt_polar_grid.h.

## Constructor & Destructor Documentation

## QwtPolarGrid()

QwtPolarGrid::QwtPolarGrid | ( |  | ) |

explicit

Constructor.

Enables major and disables minor grid lines. The azimuth and right radial axis are visible. all other axes are hidden. Autoscaling is enabled.

Definition at line 84 of file qwt_polar_grid.cpp.

## Member Function Documentation

## axisFont()

QFont QwtPolarGrid::axisFont | ( | int | axisId | ) | const

Returns
  Font for the tick labels of a specific axis

Parameters

  axisId | Axis id (QwtPolar::Axis)

Definition at line 556 of file qwt_polar_grid.cpp.

## axisPen()

QPen QwtPolarGrid::axisPen | ( | int | axisId | ) | const

Returns
  Pen for painting a specific axis

Parameters

  axisId | Axis id (QwtPolar::Axis)

See also
  setAxisPen()

Definition at line 525 of file qwt_polar_grid.cpp.

## azimuthScaleDraw() [1/2]

QwtRoundScaleDraw * QwtPolarGrid::azimuthScaleDraw | ( |  | ) |

Returns
  Scale draw for the azimuth scale

See also
  setAzimuthScaleDraw(), scaleDraw()

Definition at line 1127 of file qwt_polar_grid.cpp.

## azimuthScaleDraw() [2/2]

const QwtRoundScaleDraw * QwtPolarGrid::azimuthScaleDraw | ( |  | ) | const

Returns
  Scale draw for the azimuth scale

See also
  setAzimuthScaleDraw(), scaleDraw()

Definition at line 1117 of file qwt_polar_grid.cpp.

## draw()

void QwtPolarGrid::draw | ( | QPainter * | painter,
|  | const QwtScaleMap & | azimuthMap,
|  | const QwtScaleMap & | radialMap,
|  | const QPointF & | pole,
|  | double | radius,
|  | const QRectF & | canvasRect
| ) |  | const

override virtual

Draw the grid and axes

Parameters

  painter | Painter
  azimuthMap | Maps azimuth values to values related to 0.0, M_2PI
  radialMap | Maps radius values into painter coordinates.
  pole | Position of the pole in painter coordinates
  radius | Radius of the complete plot area in painter coordinates
  canvasRect | Contents rect of the canvas in painter coordinates

Implements QwtPolarItem.

Definition at line 574 of file qwt_polar_grid.cpp.

## drawAxis()

void QwtPolarGrid::drawAxis | ( | QPainter * | painter,
|  | int | axisId
| ) |  | const

protected

Paint an axis

Parameters

  painter | Painter
  axisId | Axis id (QwtPolar::Axis)

Definition at line 832 of file qwt_polar_grid.cpp.

## drawCircles()

void QwtPolarGrid::drawCircles | ( | QPainter * | painter,
|  | const QRectF & | canvasRect,
|  | const QPointF & | pole,
|  | const QwtScaleMap & | radialMap,
|  | const QList< double > & | values
| ) |  | const

protected

Draw circles

Parameters

  painter | Painter
  canvasRect | Contents rect of the canvas in painter coordinates
  pole | Position of the pole in painter coordinates
  radialMap | Maps radius values into painter coordinates.
  values | Radial values, indicating the distances from the pole

Definition at line 751 of file qwt_polar_grid.cpp.

## drawRays()

void QwtPolarGrid::drawRays | ( | QPainter * | painter,
|  | const QRectF & | canvasRect,
|  | const QPointF & | pole,
|  | double | radius,
|  | const QwtScaleMap & | azimuthMap,
|  | const QList< double > & | values
| ) |  | const

protected

Draw lines from the pole

Parameters

  painter | Painter
  canvasRect | Contents rect of the canvas in painter coordinates
  pole | Position of the pole in painter coordinates
  radius | Length of the lines in painter coordinates
  azimuthMap | Maps azimuth values to values related to 0.0, M_2PI
  values | Azimuth values, indicating the direction of the lines

Definition at line 681 of file qwt_polar_grid.cpp.

## isAxisVisible()

bool QwtPolarGrid::isAxisVisible | ( | int | axisId | ) | const

Returns
  true if the axis is visible

Parameters

  axisId | Axis id (QwtPolar::Axis)

See also
  showAxis()

Definition at line 343 of file qwt_polar_grid.cpp.

## isGridVisible()

bool QwtPolarGrid::isGridVisible | ( | int | scaleId | ) | const

Returns
  true if grid lines are enabled

Parameters

  scaleId | Scale id ( QwtPolar::Scale )

See also
  QwtPolar::Scale, showGrid()

Definition at line 272 of file qwt_polar_grid.cpp.

## isMinorGridVisible()

bool QwtPolarGrid::isMinorGridVisible | ( | int | scaleId | ) | const

Returns
  true if minor grid lines are enabled

Parameters

  scaleId | Scale id ( QwtPolar::Scale )

See also
  showMinorGrid()

Definition at line 308 of file qwt_polar_grid.cpp.

## majorGridPen()

QPen QwtPolarGrid::majorGridPen | ( | int | scaleId | ) | const

Returns
  Pen for painting the major grid lines of a specific scale

Parameters

  scaleId | Scale id ( QwtPolar::Scale )

See also
  setMajorGridPen(), minorGridPen()

Definition at line 454 of file qwt_polar_grid.cpp.

## marginHint()

int QwtPolarGrid::marginHint | ( |  | ) | const

override virtual

Returns
  Number of pixels, that are necessary to paint the azimuth scale

See also
  QwtRoundScaleDraw::extent()

Reimplemented from QwtPolarItem.

Definition at line 1049 of file qwt_polar_grid.cpp.

## minorGridPen()

QPen QwtPolarGrid::minorGridPen | ( | int | scaleId | ) | const

Returns
  Pen for painting the minor grid lines of a specific scale

Parameters

  scaleId | Scale id ( QwtPolar::Scale )

Definition at line 510 of file qwt_polar_grid.cpp.

## rtti()

int QwtPolarGrid::rtti | ( |  | ) | const

override virtual

Returns
  QwtPlotItem::Rtti_PolarGrid

Reimplemented from QwtPolarItem.

Definition at line 163 of file qwt_polar_grid.cpp.

## scaleDraw() [1/2]

QwtScaleDraw * QwtPolarGrid::scaleDraw | ( | int | axisId | ) |

Returns the scale draw of a specified axis

Parameters

  axisId | axis index ( QwtPolar::AxisLeft <= axisId <= QwtPolar::AxisBottom)

Returns
  specified scaleDraw for axis, or NULL if axis is invalid.

See also
  setScaleDraw(), azimuthScaleDraw()

Definition at line 1083 of file qwt_polar_grid.cpp.

## scaleDraw() [2/2]

const QwtScaleDraw * QwtPolarGrid::scaleDraw | ( | int | axisId | ) | const

Returns the scale draw of a specified axis

Parameters

  axisId | axis index ( QwtPolar::AxisLeft <= axisId <= QwtPolar::AxisBottom)

Returns
  specified scaleDraw for axis, or NULL if axis is invalid.

See also
  azimuthScaleDraw()

Definition at line 1068 of file qwt_polar_grid.cpp.

## setAxisFont()

void QwtPolarGrid::setAxisFont | ( | int | axisId,
|  | const QFont & | font
| ) |  |

Assign a font for the tick labels of a specific axis

Parameters

  axisId | Axis id (QwtPolar::Axis)
  font | new Font

Definition at line 539 of file qwt_polar_grid.cpp.

## setAxisPen()

void QwtPolarGrid::setAxisPen | ( | int | axisId,
|  | const QPen & | pen
| ) |  |

Assign a pen for painting an axis

Parameters

  axisId | Axis id (QwtPolar::Axis)
  pen | Pen

See also
  axisPen()

Definition at line 235 of file qwt_polar_grid.cpp.

## setAzimuthScaleDraw()

void QwtPolarGrid::setAzimuthScaleDraw | ( | QwtRoundScaleDraw * | scaleDraw | ) |

Set a scale draw for the azimuth scale.

Parameters

  scaleDraw | object responsible for drawing scales.

See also
  azimuthScaleDraw(), setScaleDraw()

Definition at line 1139 of file qwt_polar_grid.cpp.

## setDisplayFlag()

void QwtPolarGrid::setDisplayFlag | ( | DisplayFlag | flag,
|  | bool | on = `true`
| ) |  |

Change the display flags

Parameters

  flag | See DisplayFlag
  on | true/false

Definition at line 174 of file qwt_polar_grid.cpp.

## setFont()

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

Assign a font for all scale tick labels

Parameters

  font | Font

See also
  setAxisFont()

Definition at line 390 of file qwt_polar_grid.cpp.

## setGridAttribute()

void QwtPolarGrid::setGridAttribute | ( | GridAttribute | attribute,
|  | bool | on = `true`
| ) |  |

Specify an attribute for the grid.

Parameters

  attribute | Grid attribute
  on | On/Off

/sa GridAttribute, testGridAttribute(), updateScaleDiv(), QwtPolarPlot::zoom(), QwtPolarPlot::scaleDiv()

Definition at line 205 of file qwt_polar_grid.cpp.

## setMajorGridPen() [1/2]

void QwtPolarGrid::setMajorGridPen | ( | const QPen & | pen | ) |

Assign a pen for the major grid lines

Parameters

  pen | Pen

See also
  setPen(), setMinorGridPen(), majorGridPen

Definition at line 412 of file qwt_polar_grid.cpp.

## setMajorGridPen() [2/2]

void QwtPolarGrid::setMajorGridPen | ( | int | scaleId,
|  | const QPen & | pen
| ) |  |

Assign a pen for the major grid lines of a specific scale

Parameters

  scaleId | Scale id ( QwtPolar::Scale )
  pen | Pen

See also
  setPen(), setMinorGridPen(), majorGridPen

Definition at line 436 of file qwt_polar_grid.cpp.

## setMinorGridPen() [1/2]

void QwtPolarGrid::setMinorGridPen | ( | const QPen & | pen | ) |

Assign a pen for the minor grid lines

Parameters

  pen | Pen

See also
  setPen(), setMajorGridPen(), minorGridPen()

Definition at line 469 of file qwt_polar_grid.cpp.

## setMinorGridPen() [2/2]

void QwtPolarGrid::setMinorGridPen | ( | int | scaleId,
|  | const QPen & | pen
| ) |  |

Assign a pen for the minor grid lines of a specific scale

Parameters

  scaleId | Scale id ( QwtPolar::Scale )
  pen | Pen

See also
  setPen(), setMajorGridPen(), minorGridPen

Definition at line 493 of file qwt_polar_grid.cpp.

## setPen()

void QwtPolarGrid::setPen | ( | const QPen & | pen | ) |

Assign a pen for all axes and grid lines

Parameters

  pen | Pen

See also
  setMajorGridPen(), setMinorGridPen(), setAxisPen()

Definition at line 357 of file qwt_polar_grid.cpp.

## setScaleDraw()

void QwtPolarGrid::setScaleDraw | ( | int | axisId,
|  | QwtScaleDraw * | scaleDraw
| ) |  |

Set a scale draw.

Parameters

  axisId | axis index ( QwtPolar::AxisLeft <= axisId <= QwtPolar::AxisBottom)
  scaleDraw | object responsible for drawing scales.

See also
  scaleDraw(), setAzimuthScaleDraw()

Definition at line 1099 of file qwt_polar_grid.cpp.

## showAxis()

void QwtPolarGrid::showAxis | ( | int | axisId,
|  | bool | show = `true`
| ) |  |

Show/Hide an axis

Parameters

  axisId | Axis id (QwtPolar::Axis)
  show | true/false

See also
  isAxisVisible()

Definition at line 324 of file qwt_polar_grid.cpp.

## showGrid()

void QwtPolarGrid::showGrid | ( | int | scaleId,
|  | bool | show = `true`
| ) |  |

Show/Hide grid lines for a scale

Parameters

  scaleId | Scale id ( QwtPolar::Scale )
  show | true/false

Definition at line 254 of file qwt_polar_grid.cpp.

## showMinorGrid()

void QwtPolarGrid::showMinorGrid | ( | int | scaleId,
|  | bool | show = `true`
| ) |  |

Show/Hide minor grid lines for a scale

To display minor grid lines. showGrid() needs to be enabled too.

Parameters

  scaleId | Scale id ( QwtPolar::Scale )
  show | true/false

See also
  showGrid

Definition at line 290 of file qwt_polar_grid.cpp.

## testDisplayFlag()

bool QwtPolarGrid::testDisplayFlag | ( | DisplayFlag | flag | ) | const

Returns
  true, if flag is enabled

Parameters

  flag | See DisplayFlag

Definition at line 191 of file qwt_polar_grid.cpp.

## testGridAttribute()

bool QwtPolarGrid::testGridAttribute | ( | GridAttribute | attribute | ) | const

Returns
  true, if attribute is enabled

See also
  GridAttribute, setGridAttribute()

Definition at line 222 of file qwt_polar_grid.cpp.

## updateScaleDiv()

void QwtPolarGrid::updateScaleDiv | ( | const QwtScaleDiv & | azimuthScaleDiv,
|  | const QwtScaleDiv & | radialScaleDiv,
|  | const QwtInterval & | interval
| ) |  |

override virtual

Update the item to changes of the axes scale division.

If AutoScaling is enabled the radial scale is calculated from the interval, otherwise the scales are adopted to the plot scales.

Parameters

  azimuthScaleDiv | Scale division of the azimuth-scale
  radialScaleDiv | Scale division of the radius-axis
  interval | The interval of the radius-axis, that is visible on the canvas

See also
  QwtPolarPlot::setGridAttributes()

Reimplemented from QwtPolarItem.

Definition at line 952 of file qwt_polar_grid.cpp.