QWT 7.0.1
Loading...
Searching...
No Matches
Classes | Public Types | Public Member Functions | Protected Member Functions | List of all members
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:
QwtPolarItem

Classes

class  PrivateData
 

Public Types

enum  DisplayFlag {
  SmartOriginLabel = 1 , HideMaxRadiusLabel = 2 , ClipAxisBackground = 4 , SmartScaleDraw = 8 ,
  ClipGridLines = 16
}
 Mysterious flags trying to avoid conflicts, when painting the scales and grid lines. More...
 
enum  GridAttribute { AutoScaling = 0x01 }
 Grid attributes. More...
 
- 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...
 

Public Member Functions

 QwtPolarGrid ()
 Constructor.
 
virtual ~QwtPolarGrid ()
 Destructor.
 
virtual int rtti () const QWT_OVERRIDE
 
void setDisplayFlag (DisplayFlag, bool on=true)
 Change the display flags.
 
bool testDisplayFlag (DisplayFlag) const
 
void setGridAttribute (GridAttribute, bool on=true)
 Specify an attribute for the grid.
 
bool testGridAttribute (GridAttribute) const
 
void showGrid (int scaleId, bool show=true)
 Show/Hide grid lines for a scale.
 
bool isGridVisible (int scaleId) const
 
void showMinorGrid (int scaleId, bool show=true)
 Show/Hide minor grid lines for a scale.
 
bool isMinorGridVisible (int scaleId) const
 
void showAxis (int axisId, bool show=true)
 Show/Hide an axis.
 
bool isAxisVisible (int axisId) const
 
void setPen (const QPen &p)
 Assign a pen for all axes and grid lines.
 
void setFont (const QFont &)
 Assign a font for all scale tick labels.
 
void setMajorGridPen (const QPen &p)
 Assign a pen for the major grid lines.
 
void setMajorGridPen (int scaleId, const QPen &p)
 Assign a pen for the major grid lines of a specific scale.
 
QPen majorGridPen (int scaleId) const
 
void setMinorGridPen (const QPen &p)
 Assign a pen for the minor grid lines.
 
void setMinorGridPen (int scaleId, const QPen &p)
 Assign a pen for the minor grid lines of a specific scale.
 
QPen minorGridPen (int scaleId) const
 
void setAxisPen (int axisId, const QPen &p)
 Assign a pen for painting an axis.
 
QPen axisPen (int axisId) const
 
void setAxisFont (int axisId, const QFont &p)
 Assign a font for the tick labels of a specific axis.
 
QFont axisFont (int axisId) const
 
void setScaleDraw (int axisId, QwtScaleDraw *)
 Set a scale draw.
 
const QwtScaleDrawscaleDraw (int axisId) const
 Returns the scale draw of a specified axis.
 
QwtScaleDrawscaleDraw (int axisId)
 Returns the scale draw of a specified axis.
 
void setAzimuthScaleDraw (QwtRoundScaleDraw *)
 Set a scale draw for the azimuth scale.
 
const QwtRoundScaleDrawazimuthScaleDraw () const
 
QwtRoundScaleDrawazimuthScaleDraw ()
 
virtual void draw (QPainter *p, const QwtScaleMap &azimuthMap, const QwtScaleMap &radialMap, const QPointF &pole, double radius, const QRectF &rect) const QWT_OVERRIDE
 Draw the grid and axes.
 
virtual void updateScaleDiv (const QwtScaleDiv &azimuthMap, const QwtScaleDiv &radialMap, const QwtInterval &) QWT_OVERRIDE
 Update the item to changes of the axes scale division.
 
virtual int marginHint () const QWT_OVERRIDE
 
- Public Member Functions inherited from QwtPolarItem
 QwtPolarItem (const QwtText &title=QwtText())
 Constructor.
 
virtual ~QwtPolarItem ()
 Destroy the QwtPolarItem.
 
void attach (QwtPolarPlot *plot)
 Attach the item to a plot.
 
void detach ()
 This method detaches a QwtPolarItem from the QwtPolarPlot it has been associated with.
 
QwtPolarPlotplot () const
 
void setTitle (const QString &title)
 Set a new title.
 
void setTitle (const QwtText &title)
 Set a new title.
 
const QwtTexttitle () const
 
void setItemAttribute (ItemAttribute, bool on=true)
 Toggle an item attribute.
 
bool testItemAttribute (ItemAttribute) const
 Test an item attribute.
 
void setRenderHint (RenderHint, bool on=true)
 Toggle an render hint.
 
bool testRenderHint (RenderHint) const
 Test a render hint.
 
void setRenderThreadCount (uint numThreads)
 On multi core systems rendering of certain plot item ( f.e QwtPolarSpectrogram ) can be done in parallel in several threads.
 
uint renderThreadCount () const
 
double z () const
 Plot items are painted in increasing z-order.
 
void setZ (double z)
 Set the z value.
 
void show ()
 Show the item.
 
void hide ()
 Hide the item.
 
virtual void setVisible (bool)
 Show/Hide the item.
 
bool isVisible () const
 
virtual void itemChanged ()
 Update the legend and call QwtPolarPlot::autoRefresh for the parent plot.
 
virtual void legendChanged ()
 Update the legend of the parent plot.
 
virtual QwtInterval boundingInterval (int scaleId) const
 Interval, that is necessary to display the item.
 
void setLegendIconSize (const QSize &)
 Set the size of the legend icon.
 
QSize legendIconSize () const
 
virtual QList< QwtLegendDatalegendData () const
 Return all information, that is needed to represent the item on the legend.
 
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
 Draw lines from the pole.
 
void drawCircles (QPainter *, const QRectF &, const QPointF &pole, const QwtScaleMap &radialMap, const QList< double > &) const
 Draw circles.
 
void drawAxis (QPainter *, int axisId) const
 Paint an axis.
 

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

Member Enumeration Documentation

◆ 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.

◆ 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.

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.

Member Function Documentation

◆ axisFont()

QFont QwtPolarGrid::axisFont ( int  axisId) const
Returns
Font for the tick labels of a specific axis
Parameters
axisIdAxis id (QwtPolar::Axis)

◆ axisPen()

QPen QwtPolarGrid::axisPen ( int  axisId) const
Returns
Pen for painting a specific axis
Parameters
axisIdAxis id (QwtPolar::Axis)
See also
setAxisPen()

◆ azimuthScaleDraw() [1/2]

QwtRoundScaleDraw * QwtPolarGrid::azimuthScaleDraw ( )
Returns
Scale draw for the azimuth scale
See also
setAzimuthScaleDraw(), scaleDraw()

◆ azimuthScaleDraw() [2/2]

const QwtRoundScaleDraw * QwtPolarGrid::azimuthScaleDraw ( ) const
Returns
Scale draw for the azimuth scale
See also
setAzimuthScaleDraw(), scaleDraw()

◆ draw()

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

Draw the grid and axes.

Parameters
painterPainter
azimuthMapMaps azimuth values to values related to 0.0, M_2PI
radialMapMaps radius values into painter coordinates.
polePosition of the pole in painter coordinates
radiusRadius of the complete plot area in painter coordinates
canvasRectContents rect of the canvas in painter coordinates

Implements QwtPolarItem.

◆ drawAxis()

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

Paint an axis.

Parameters
painterPainter
axisIdAxis id (QwtPolar::Axis)

◆ drawCircles()

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

Draw circles.

Parameters
painterPainter
canvasRectContents rect of the canvas in painter coordinates
polePosition of the pole in painter coordinates
radialMapMaps radius values into painter coordinates.
valuesRadial values, indicating the distances from the pole

◆ 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
painterPainter
canvasRectContents rect of the canvas in painter coordinates
polePosition of the pole in painter coordinates
radiusLength of the lines in painter coordinates
azimuthMapMaps azimuth values to values related to 0.0, M_2PI
valuesAzimuth values, indicating the direction of the lines

◆ isAxisVisible()

bool QwtPolarGrid::isAxisVisible ( int  axisId) const
Returns
true if the axis is visible
Parameters
axisIdAxis id (QwtPolar::Axis)
See also
showAxis()

◆ isGridVisible()

bool QwtPolarGrid::isGridVisible ( int  scaleId) const
Returns
true if grid lines are enabled
Parameters
scaleIdScale id ( QwtPolar::Scale )
See also
QwtPolar::Scale, showGrid()

◆ isMinorGridVisible()

bool QwtPolarGrid::isMinorGridVisible ( int  scaleId) const
Returns
true if minor grid lines are enabled
Parameters
scaleIdScale id ( QwtPolar::Scale )
See also
showMinorGrid()

◆ majorGridPen()

QPen QwtPolarGrid::majorGridPen ( int  scaleId) const
Returns
Pen for painting the major grid lines of a specific scale
Parameters
scaleIdScale id ( QwtPolar::Scale )
See also
setMajorGridPen(), minorGridPen()

◆ marginHint()

int QwtPolarGrid::marginHint ( ) const
virtual
Returns
Number of pixels, that are necessary to paint the azimuth scale
See also
QwtRoundScaleDraw::extent()

Reimplemented from QwtPolarItem.

◆ minorGridPen()

QPen QwtPolarGrid::minorGridPen ( int  scaleId) const
Returns
Pen for painting the minor grid lines of a specific scale
Parameters
scaleIdScale id ( QwtPolar::Scale )

◆ rtti()

int QwtPolarGrid::rtti ( ) const
virtual
Returns
QwtPlotItem::Rtti_PolarGrid

Reimplemented from QwtPolarItem.

◆ scaleDraw() [1/2]

QwtScaleDraw * QwtPolarGrid::scaleDraw ( int  axisId)

Returns the scale draw of a specified axis.

Parameters
axisIdaxis index ( QwtPolar::AxisLeft <= axisId <= QwtPolar::AxisBottom)
Returns
specified scaleDraw for axis, or NULL if axis is invalid.
See also
setScaleDraw(), azimuthScaleDraw()

◆ scaleDraw() [2/2]

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

Returns the scale draw of a specified axis.

Parameters
axisIdaxis index ( QwtPolar::AxisLeft <= axisId <= QwtPolar::AxisBottom)
Returns
specified scaleDraw for axis, or NULL if axis is invalid.
See also
azimuthScaleDraw()

◆ setAxisFont()

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

Assign a font for the tick labels of a specific axis.

Parameters
axisIdAxis id (QwtPolar::Axis)
fontnew Font

◆ setAxisPen()

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

Assign a pen for painting an axis.

Parameters
axisIdAxis id (QwtPolar::Axis)
penPen
See also
axisPen()

◆ setAzimuthScaleDraw()

void QwtPolarGrid::setAzimuthScaleDraw ( QwtRoundScaleDraw scaleDraw)

Set a scale draw for the azimuth scale.

Parameters
scaleDrawobject responsible for drawing scales.
See also
azimuthScaleDraw(), setScaleDraw()

◆ setDisplayFlag()

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

Change the display flags.

Parameters
flagSee DisplayFlag
ontrue/false

◆ setFont()

void QwtPolarGrid::setFont ( const QFont &  font)

Assign a font for all scale tick labels.

Parameters
fontFont
See also
setAxisFont()

◆ setGridAttribute()

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

Specify an attribute for the grid.

Parameters
attributeGrid attribute
onOn/Off

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

◆ setMajorGridPen() [1/2]

void QwtPolarGrid::setMajorGridPen ( const QPen &  pen)

Assign a pen for the major grid lines.

Parameters
penPen
See also
setPen(), setMinorGridPen(), majorGridPen

◆ setMajorGridPen() [2/2]

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

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

Parameters
scaleIdScale id ( QwtPolar::Scale )
penPen
See also
setPen(), setMinorGridPen(), majorGridPen

◆ setMinorGridPen() [1/2]

void QwtPolarGrid::setMinorGridPen ( const QPen &  pen)

Assign a pen for the minor grid lines.

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

◆ setMinorGridPen() [2/2]

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

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

Parameters
scaleIdScale id ( QwtPolar::Scale )
penPen
See also
setPen(), setMajorGridPen(), minorGridPen

◆ setPen()

void QwtPolarGrid::setPen ( const QPen &  pen)

Assign a pen for all axes and grid lines.

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

◆ setScaleDraw()

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

Set a scale draw.

Parameters
axisIdaxis index ( QwtPolar::AxisLeft <= axisId <= QwtPolar::AxisBottom)
scaleDrawobject responsible for drawing scales.
See also
scaleDraw(), setAzimuthScaleDraw()

◆ showAxis()

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

Show/Hide an axis.

Parameters
axisIdAxis id (QwtPolar::Axis)
showtrue/false
See also
isAxisVisible()

◆ showGrid()

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

Show/Hide grid lines for a scale.

Parameters
scaleIdScale id ( QwtPolar::Scale )
showtrue/false

◆ 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
scaleIdScale id ( QwtPolar::Scale )
showtrue/false
See also
showGrid

◆ testDisplayFlag()

bool QwtPolarGrid::testDisplayFlag ( DisplayFlag  flag) const
Returns
true, if flag is enabled
Parameters
flagSee DisplayFlag

◆ testGridAttribute()

bool QwtPolarGrid::testGridAttribute ( GridAttribute  attribute) const
Returns
true, if attribute is enabled
See also
GridAttribute, setGridAttribute()

◆ updateScaleDiv()

void QwtPolarGrid::updateScaleDiv ( const QwtScaleDiv azimuthScaleDiv,
const QwtScaleDiv radialScaleDiv,
const QwtInterval interval 
)
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
azimuthScaleDivScale division of the azimuth-scale
radialScaleDivScale division of the radius-axis
intervalThe interval of the radius-axis, that is visible on the canvas
See also
QwtPolarPlot::setGridAttributes()

Reimplemented from QwtPolarItem.


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