Qwt Polar User's Guide 1.0.0
Public Types | Public Member Functions | Protected Member Functions

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:
Inheritance graph
[legend]

List of all members.

Public Types

enum  DisplayFlag {
  SmartOriginLabel = 1,
  HideMaxRadiusLabel = 2,
  ClipAxisBackground = 4,
  SmartScaleDraw = 8,
  ClipGridLines = 16
}
enum  GridAttribute { AutoScaling = 0x01 }
typedef QFlags< DisplayFlagDisplayFlags
typedef QFlags< GridAttributeGridAttributes

Public Member Functions

 QwtPolarGrid ()
virtual ~QwtPolarGrid ()
virtual int rtti () const
void setDisplayFlag (DisplayFlag, bool on=true)
bool testDisplayFlag (DisplayFlag) const
void setGridAttribute (GridAttribute, bool on=true)
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 *)
const QwtScaleDraw * scaleDraw (int axisId) const
QwtScaleDraw * scaleDraw (int axisId)
void setAzimuthScaleDraw (QwtRoundScaleDraw *)
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
virtual void updateScaleDiv (const QwtScaleDiv &azimuthMap, const QwtScaleDiv &radialMap, const QwtInterval &)
virtual int marginHint () 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

Member Typedef Documentation

Display flags.

Grid attributes.


Member Enumeration Documentation

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

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

QwtPolarGrid::~QwtPolarGrid ( ) [virtual]

Destructor.


Member Function Documentation

QFont QwtPolarGrid::axisFont ( int  axisId) const
Returns:
Font for the tick labels of a specific axis
Parameters:
axisIdAxis id (QwtPolar::Axis)
QPen QwtPolarGrid::axisPen ( int  axisId) const
Returns:
Pen for painting a specific axis
Parameters:
axisIdAxis id (QwtPolar::Axis)
See also:
setAxisPen()
const QwtRoundScaleDraw * QwtPolarGrid::azimuthScaleDraw ( ) const
Returns:
Scale draw for the azimuth scale
See also:
setAzimuthScaleDraw(), scaleDraw()
QwtRoundScaleDraw * QwtPolarGrid::azimuthScaleDraw ( )
Returns:
Scale draw for the azimuth scale
See also:
setAzimuthScaleDraw(), scaleDraw()
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.

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

Paint an axis

Parameters:
painterPainter
axisIdAxis id (QwtPolar::Axis)
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
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
bool QwtPolarGrid::isAxisVisible ( int  axisId) const
Returns:
true if the axis is visible
Parameters:
axisIdAxis id (QwtPolar::Axis)
See also:
showAxis()
bool QwtPolarGrid::isGridVisible ( int  scaleId) const
Returns:
true if grid lines are enabled
Parameters:
scaleIdScale id ( QwtPolar::Scale )
See also:
QwtPolar::Scale, showGrid()
bool QwtPolarGrid::isMinorGridVisible ( int  scaleId) const
Returns:
true if minor grid lines are enabled
Parameters:
scaleIdScale id ( QwtPolar::Scale )
See also:
showMinorGrid()
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()
int QwtPolarGrid::marginHint ( ) const [virtual]
Returns:
Number of pixels, that are necessary to paint the azimuth scale
See also:
QwtRoundScaleDraw::extent()

Reimplemented from QwtPolarItem.

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

Reimplemented from QwtPolarItem.

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()
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()
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
void QwtPolarGrid::setAxisPen ( int  axisId,
const QPen &  pen 
)

Assign a pen for painting an axis

Parameters:
axisIdAxis id (QwtPolar::Axis)
penPen
See also:
axisPen()
void QwtPolarGrid::setAzimuthScaleDraw ( QwtRoundScaleDraw *  scaleDraw)

Set a scale draw for the azimuth scale.

Parameters:
scaleDrawobject responsible for drawing scales.
See also:
azimuthScaleDraw(), setScaleDraw()
void QwtPolarGrid::setDisplayFlag ( DisplayFlag  flag,
bool  on = true 
)

Change the display flags

Parameters:
flagSee DisplayFlag
ontrue/false
void QwtPolarGrid::setFont ( const QFont &  font)

Assign a font for all scale tick labels

Parameters:
fontFont
See also:
setAxisFont()
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()

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
void QwtPolarGrid::setMajorGridPen ( const QPen &  pen)

Assign a pen for the major grid lines

Parameters:
penPen
See also:
setPen(), setMinorGridPen(), majorGridPen
void QwtPolarGrid::setMinorGridPen ( const QPen &  pen)

Assign a pen for the minor grid lines

Parameters:
penPen
See also:
setPen(), setMajorGridPen(), minorGridPen()
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
void QwtPolarGrid::setPen ( const QPen &  pen)

Assign a pen for all axes and grid lines

Parameters:
penPen
See also:
setMajorGridPen(), setMinorGridPen(), setAxisPen()
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()
void QwtPolarGrid::showAxis ( int  axisId,
bool  show = true 
)

Show/Hide an axis

Parameters:
axisIdAxis id (QwtPolar::Axis)
showtrue/false
See also:
isAxisVisible()
void QwtPolarGrid::showGrid ( int  scaleId,
bool  show = true 
)

Show/Hide grid lines for a scale

Parameters:
scaleIdScale id ( QwtPolar::Scale )
showtrue/false
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
bool QwtPolarGrid::testDisplayFlag ( DisplayFlag  flag) const
Returns:
true, if flag is enabled
Parameters:
flagSee DisplayFlag
bool QwtPolarGrid::testGridAttribute ( GridAttribute  attribute) const
Returns:
true, if attribute is enabled
See also:
GridAttribute, setGridAttribute()
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.