QWT 7.0.1
Loading...
Searching...
No Matches
Classes | Public Types | Public Slots | Signals | Public Member Functions | Protected Member Functions | Properties | Friends | List of all members
QwtPolarPlot Class Reference

A plotting widget, displaying a polar coordinate system. More...

#include <qwt_polar_plot.h>

Inheritance diagram for QwtPolarPlot:
QwtPolarItemDict

Classes

class  PrivateData
 

Public Types

enum  LegendPosition {
  LeftLegend , RightLegend , BottomLegend , TopLegend ,
  ExternalLegend
}
 Position of the legend, relative to the canvas. More...
 

Public Slots

virtual void replot ()
 Redraw the plot.
 
void autoRefresh ()
 Replots the plot if QwtPlot::autoReplot() is true.
 
void setAzimuthOrigin (double)
 Change the origin of the azimuth scale.
 

Signals

void itemAttached (QwtPolarItem *plotItem, bool on)
 A signal indicating, that an item has been attached/detached.
 
void legendDataChanged (const QVariant &itemInfo, const QList< QwtLegendData > &data)
 A signal with the attributes how to update the legend entries for a plot item.
 
void layoutChanged ()
 A signal that is emitted, whenever the layout of the plot has been recalculated.
 

Public Member Functions

 QwtPolarPlot (QWidget *parent=NULL)
 Constructor.
 
 QwtPolarPlot (const QwtText &title, QWidget *parent=NULL)
 Constructor.
 
virtual ~QwtPolarPlot ()
 Destructor.
 
void setTitle (const QString &)
 Change the plot's title.
 
void setTitle (const QwtText &)
 Change the plot's title.
 
QwtText title () const
 
QwtTextLabeltitleLabel ()
 
const QwtTextLabeltitleLabel () const
 
void setAutoReplot (bool tf=true)
 Set or reset the autoReplot option.
 
bool autoReplot () const
 
void setAutoScale (int scaleId)
 Enable autoscaling.
 
bool hasAutoScale (int scaleId) const
 
void setScaleMaxMinor (int scaleId, int maxMinor)
 Set the maximum number of major scale intervals for a specified scale.
 
int scaleMaxMinor (int scaleId) const
 
int scaleMaxMajor (int scaleId) const
 
void setScaleMaxMajor (int scaleId, int maxMajor)
 Set the maximum number of major scale intervals for a specified scale.
 
QwtScaleEnginescaleEngine (int scaleId)
 
const QwtScaleEnginescaleEngine (int scaleId) const
 
void setScaleEngine (int scaleId, QwtScaleEngine *)
 Change the scale engine for an axis.
 
void setScale (int scaleId, double min, double max, double step=0)
 Disable autoscaling and specify a fixed scale for a selected scale.
 
void setScaleDiv (int scaleId, const QwtScaleDiv &)
 Disable autoscaling and specify a fixed scale for a selected scale.
 
const QwtScaleDivscaleDiv (int scaleId) const
 Return the scale division of a specified scale.
 
QwtScaleDivscaleDiv (int scaleId)
 Return the scale division of a specified scale.
 
QwtScaleMap scaleMap (int scaleId, double radius) const
 Build a scale map.
 
QwtScaleMap scaleMap (int scaleId) const
 Build a scale map.
 
void updateScale (int scaleId)
 Rebuild the scale.
 
double azimuthOrigin () const
 The azimuth origin is the angle where the azimuth scale shows the value 0.0.
 
void zoom (const QwtPointPolar &, double factor)
 Translate and in/decrease the zoom factor.
 
void unzoom ()
 Unzoom the plot.
 
QwtPointPolar zoomPos () const
 
double zoomFactor () const
 
QwtPolarCanvascanvas ()
 
const QwtPolarCanvascanvas () const
 
void setPlotBackground (const QBrush &c)
 Set the background of the plot area.
 
const QBrush & plotBackground () const
 
virtual void drawCanvas (QPainter *, const QRectF &) const
 Redraw the canvas.
 
void insertLegend (QwtAbstractLegend *, LegendPosition=RightLegend, double ratio=-1.0)
 Insert a legend.
 
QwtAbstractLegendlegend ()
 
const QwtAbstractLegendlegend () const
 
void updateLegend ()
 Emit legendDataChanged() for all plot item.
 
void updateLegend (const QwtPolarItem *)
 Emit legendDataChanged() for a plot item.
 
QwtPolarLayoutplotLayout ()
 
const QwtPolarLayoutplotLayout () const
 
QwtInterval visibleInterval () const
 
QRectF plotRect () const
 The plot area depends on the size of the canvas and the zoom parameters.
 
QRectF plotRect (const QRectF &) const
 Calculate the bounding rect of the plot area.
 
int plotMarginHint () const
 
virtual QVariant itemToInfo (QwtPolarItem *) const
 Build an information, that can be used to identify a plot item on the legend.
 
virtual QwtPolarIteminfoToItem (const QVariant &) const
 Identify the plot item according to an item info object, that has bee generated from itemToInfo().
 
- Public Member Functions inherited from QwtPolarItemDict
 QwtPolarItemDict ()
 Constructor.
 
 ~QwtPolarItemDict ()
 Destructor.
 
void setAutoDelete (bool)
 En/Disable Auto deletion.
 
bool autoDelete () const
 
const QwtPolarItemListitemList () const
 A QwtPolarItemList of all attached plot items.
 
void detachItems (int rtti=QwtPolarItem::Rtti_PolarItem, bool autoDelete=true)
 Detach items from the dictionary.
 

Protected Member Functions

virtual bool event (QEvent *) QWT_OVERRIDE
 Qt event handler.
 
virtual void resizeEvent (QResizeEvent *) QWT_OVERRIDE
 Resize and update internal layout.
 
virtual void updateLayout ()
 Rebuild the layout.
 
virtual void drawItems (QPainter *painter, const QwtScaleMap &radialMap, const QwtScaleMap &azimuthMap, const QPointF &pole, double radius, const QRectF &canvasRect) const
 Redraw the canvas items.
 
- Protected Member Functions inherited from QwtPolarItemDict
void insertItem (QwtPolarItem *)
 Insert a plot item.
 
void removeItem (QwtPolarItem *)
 Remove a plot item.
 

Properties

QBrush plotBackground
 
double azimuthOrigin
 

Friends

class QwtPolarItem
 

Detailed Description

A plotting widget, displaying a polar coordinate system.

An unlimited number of plot items can be displayed on its canvas. Plot items might be curves (QwtPolarCurve), markers (QwtPolarMarker), the grid (QwtPolarGrid), or anything else derived from QwtPolarItem.

The coordinate system is defined by a radial and a azimuth scale. The scales at the axes can be explicitly set (QwtScaleDiv), or are calculated from the plot items, using algorithms (QwtScaleEngine) which can be configured separately for each axis. Autoscaling is supported for the radial scale.

In opposite to QwtPlot the scales might be different from the view, that is displayed on the canvas. The view can be changed by zooming - f.e. by using QwtPolarPanner or QwtPolarMaginfier.

Member Enumeration Documentation

◆ LegendPosition

Position of the legend, relative to the canvas.

See also
insertLegend()
Enumerator
LeftLegend 

The legend will be left from the canvas.

RightLegend 

The legend will be right from the canvas.

BottomLegend 

The legend will be below the canvas.

TopLegend 

The legend will be between canvas and title.

ExternalLegend 

External means that only the content of the legend will be handled by QwtPlot, but not its geometry.

This might be interesting if an application wants to have a legend in an external window ( or on the canvas ).

Note
The legend is not painted by QwtPolarRenderer

Constructor & Destructor Documentation

◆ QwtPolarPlot() [1/2]

QwtPolarPlot::QwtPolarPlot ( QWidget *  parent = NULL)
explicit

Constructor.

Parameters
parentParent widget

◆ QwtPolarPlot() [2/2]

QwtPolarPlot::QwtPolarPlot ( const QwtText title,
QWidget *  parent = NULL 
)

Constructor.

Parameters
titleTitle text
parentParent widget

Member Function Documentation

◆ autoReplot()

bool QwtPolarPlot::autoReplot ( ) const
Returns
true if the autoReplot option is set.

◆ azimuthOrigin()

double QwtPolarPlot::azimuthOrigin ( ) const

The azimuth origin is the angle where the azimuth scale shows the value 0.0.

Returns
Origin of the azimuth scale
See also
setAzimuthOrigin()

◆ canvas() [1/2]

QwtPolarCanvas * QwtPolarPlot::canvas ( )
Returns
the plot's canvas

◆ canvas() [2/2]

const QwtPolarCanvas * QwtPolarPlot::canvas ( ) const
Returns
the plot's canvas

◆ drawCanvas()

void QwtPolarPlot::drawCanvas ( QPainter *  painter,
const QRectF &  canvasRect 
) const
virtual

Redraw the canvas.

Parameters
painterPainter used for drawing
canvasRectContents rect of the canvas

◆ drawItems()

void QwtPolarPlot::drawItems ( QPainter *  painter,
const QwtScaleMap azimuthMap,
const QwtScaleMap radialMap,
const QPointF &  pole,
double  radius,
const QRectF &  canvasRect 
) const
protectedvirtual

Redraw the canvas items.

Parameters
painterPainter used for drawing
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

◆ event()

bool QwtPolarPlot::event ( QEvent *  e)
protectedvirtual

Qt event handler.

Handles QEvent::LayoutRequest and QEvent::PolishRequest

Parameters
eQt Event
Returns
True, when the event was processed

◆ hasAutoScale()

bool QwtPolarPlot::hasAutoScale ( int  scaleId) const
Returns
true if autoscaling is enabled
Parameters
scaleIdScale index
See also
setAutoScale()

◆ infoToItem()

QwtPolarItem * QwtPolarPlot::infoToItem ( const QVariant &  itemInfo) const
virtual

Identify the plot item according to an item info object, that has bee generated from itemToInfo().

The default implementation simply tries to unwrap a QwtPlotItem pointer:

if ( itemInfo.canConvert<QwtPlotItem *>() )
return qvariant_cast<QwtPlotItem *>( itemInfo );
Base class for items on the plot canvas.
Definition qwt_plot_item.h:85
Parameters
itemInfoPlot item
Returns
A plot item, when successful, otherwise a NULL pointer.
See also
itemToInfo()

◆ insertLegend()

void QwtPolarPlot::insertLegend ( QwtAbstractLegend legend,
QwtPolarPlot::LegendPosition  pos = RightLegend,
double  ratio = -1.0 
)

Insert a legend.

If the position legend is QwtPolarPlot::LeftLegend or QwtPolarPlot::RightLegend the legend will be organized in one column from top to down. Otherwise the legend items will be placed in a table with a best fit number of columns from left to right.

If pos != QwtPolarPlot::ExternalLegend the plot widget will become parent of the legend. It will be deleted when the plot is deleted, or another legend is set with insertLegend().

Parameters
legendLegend
posThe legend's position. For top/left position the number of columns will be limited to 1, otherwise it will be set to unlimited.
ratioRatio between legend and the bounding rect of title, canvas and axes. The legend will be shrunk if it would need more space than the given ratio. The ratio is limited to ]0.0 .. 1.0]. In case of <= 0.0 it will be reset to the default ratio. The default vertical/horizontal ratio is 0.33/0.5.
See also
legend(), QwtPolarLayout::legendPosition(), QwtPolarLayout::setLegendPosition()

◆ itemAttached

void QwtPolarPlot::itemAttached ( QwtPolarItem plotItem,
bool  on 
)
signal

A signal indicating, that an item has been attached/detached.

Parameters
plotItemPlot item
onAttached/Detached

◆ itemToInfo()

QVariant QwtPolarPlot::itemToInfo ( QwtPolarItem plotItem) const
virtual

Build an information, that can be used to identify a plot item on the legend.

The default implementation simply wraps the plot item into a QVariant object. When overloading itemToInfo() usually infoToItem() needs to reimplemeted too.

QVariant itemInfo;
qVariantSetValue( itemInfo, plotItem );
Parameters
plotItemPlot item
See also
infoToItem()

◆ legend() [1/2]

QwtAbstractLegend * QwtPolarPlot::legend ( )
Returns
the plot's legend
See also
insertLegend()

◆ legend() [2/2]

const QwtAbstractLegend * QwtPolarPlot::legend ( ) const
Returns
the plot's legend
See also
insertLegend()

◆ legendDataChanged

void QwtPolarPlot::legendDataChanged ( const QVariant &  itemInfo,
const QList< QwtLegendData > &  data 
)
signal

A signal with the attributes how to update the legend entries for a plot item.

Parameters
itemInfoInfo about a plot, build from itemToInfo()
dataAttributes of the entries ( usually <= 1 ) for the plot item.
See also
itemToInfo(), infoToItem(), QwtAbstractLegend::updateLegend()

◆ plotBackground()

const QBrush & QwtPolarPlot::plotBackground ( ) const
Returns
plot background brush
See also
plotBackground(), plotArea()

◆ plotLayout() [1/2]

QwtPolarLayout * QwtPolarPlot::plotLayout ( )
Returns
Layout, responsible for the geometry of the plot components

◆ plotLayout() [2/2]

const QwtPolarLayout * QwtPolarPlot::plotLayout ( ) const
Returns
Layout, responsible for the geometry of the plot components

◆ plotMarginHint()

int QwtPolarPlot::plotMarginHint ( ) const
Returns
Maximum of all item margin hints.
See also
QwtPolarItem::marginHint()

◆ plotRect() [1/2]

QRectF QwtPolarPlot::plotRect ( ) const

The plot area depends on the size of the canvas and the zoom parameters.

Returns
Bounding rect of the plot area

◆ plotRect() [2/2]

QRectF QwtPolarPlot::plotRect ( const QRectF &  canvasRect) const

Calculate the bounding rect of the plot area.

The plot area depends on the zoom parameters.

Parameters
canvasRectRectangle of the canvas
Returns
Rectangle for displaying 100% of the plot

◆ replot

void QwtPolarPlot::replot ( )
virtualslot

Redraw the plot.

If the autoReplot option is not set (which is the default) or if any curves are attached to raw data, the plot has to be refreshed explicitly in order to make changes visible.

See also
setAutoReplot()
Warning
Calls canvas()->repaint, take care of infinite recursions

◆ scaleDiv() [1/2]

QwtScaleDiv * QwtPolarPlot::scaleDiv ( int  scaleId)

Return the scale division of a specified scale.

scaleDiv(scaleId)->lBound(), scaleDiv(scaleId)->hBound() are the current limits of the scale.

Parameters
scaleIdScale index
Returns
Scale division
See also
QwtScaleDiv, setScaleDiv(), setScale()

◆ scaleDiv() [2/2]

const QwtScaleDiv * QwtPolarPlot::scaleDiv ( int  scaleId) const

Return the scale division of a specified scale.

scaleDiv(scaleId)->lBound(), scaleDiv(scaleId)->hBound() are the current limits of the scale.

Parameters
scaleIdScale index
Returns
Scale division
See also
QwtScaleDiv, setScaleDiv(), setScale()

◆ scaleEngine() [1/2]

QwtScaleEngine * QwtPolarPlot::scaleEngine ( int  scaleId)
Returns
Scale engine for a specific scale
Parameters
scaleIdScale index
See also
setScaleEngine()

◆ scaleEngine() [2/2]

const QwtScaleEngine * QwtPolarPlot::scaleEngine ( int  scaleId) const
Returns
Scale engine for a specific scale
Parameters
scaleIdScale index
See also
setScaleEngine()

◆ scaleMap() [1/2]

QwtScaleMap QwtPolarPlot::scaleMap ( int  scaleId) const

Build a scale map.

The azimuth map translates between the scale values and angles from [0.0, 2 * PI[. The radial map translates scale values into the distance from the pole. The radial map is calculated from the current geometry of the canvas.

Parameters
scaleIdScale index
Returns
Map for the scale on the canvas. With this map pixel coordinates can translated to plot coordinates and vice versa.
See also
QwtScaleMap, transform(), invTransform()

◆ scaleMap() [2/2]

QwtScaleMap QwtPolarPlot::scaleMap ( int  scaleId,
double  radius 
) const

Build a scale map.

The azimuth map translates between the scale values and angles from [0.0, 2 * PI[. The radial map translates scale values into the distance from the pole.

Parameters
scaleIdScale index
radiusRadius of the plot are in pixels
Returns
Map for the scale on the canvas. With this map pixel coordinates can translated to plot coordinates and vice versa.
See also
QwtScaleMap, transform(), invTransform()

◆ scaleMaxMajor()

int QwtPolarPlot::scaleMaxMajor ( int  scaleId) const
Returns
the maximum number of major ticks for a specified axis
Parameters
scaleIdScale index
See also
setScaleMaxMajor()

◆ scaleMaxMinor()

int QwtPolarPlot::scaleMaxMinor ( int  scaleId) const
Returns
the maximum number of minor ticks for a specified axis
Parameters
scaleIdScale index
See also
setScaleMaxMinor()

◆ setAutoReplot()

void QwtPolarPlot::setAutoReplot ( bool  enable = true)

Set or reset the autoReplot option.

If the autoReplot option is set, the plot will be updated implicitly by manipulating member functions. Since this may be time-consuming, it is recommended to leave this option switched off and call replot() explicitly if necessary.

The autoReplot option is set to false by default, which means that the user has to call replot() in order to make changes visible.

Parameters
enabletrue or false. Defaults to true.
See also
replot()

◆ setAutoScale()

void QwtPolarPlot::setAutoScale ( int  scaleId)

Enable autoscaling.

This member function is used to switch back to autoscaling mode after a fixed scale has been set. Autoscaling calculates a useful scale division from the bounding interval of all plot items with the QwtPolarItem::AutoScale attribute.

Autoscaling is only supported for the radial scale and enabled as default.

Parameters
scaleIdScale index
See also
hasAutoScale(), setScale(), setScaleDiv(), QwtPolarItem::boundingInterval()

◆ setAzimuthOrigin

void QwtPolarPlot::setAzimuthOrigin ( double  origin)
slot

Change the origin of the azimuth scale.

The azimuth origin is the angle where the azimuth scale shows the value 0.0. The default origin is 0.0.

Parameters
originNew origin
See also
azimuthOrigin()

◆ setPlotBackground()

void QwtPolarPlot::setPlotBackground ( const QBrush &  brush)

Set the background of the plot area.

The plot area is the circle around the pole. It's radius is defined by the radial scale.

Parameters
brushBackground Brush
See also
plotBackground(), plotArea()

◆ setScale()

void QwtPolarPlot::setScale ( int  scaleId,
double  min,
double  max,
double  stepSize = 0 
)

Disable autoscaling and specify a fixed scale for a selected scale.

Parameters
scaleIdScale index
min
maxminimum and maximum of the scale
stepSizeMajor step size. If step == 0, the step size is calculated automatically using the maxMajor setting.
See also
setScaleMaxMajor(), setAutoScale()

◆ setScaleDiv()

void QwtPolarPlot::setScaleDiv ( int  scaleId,
const QwtScaleDiv scaleDiv 
)

Disable autoscaling and specify a fixed scale for a selected scale.

Parameters
scaleIdScale index
scaleDivScale division
See also
setScale(), setAutoScale()

◆ setScaleEngine()

void QwtPolarPlot::setScaleEngine ( int  scaleId,
QwtScaleEngine scaleEngine 
)

Change the scale engine for an axis.

Parameters
scaleIdScale index
scaleEngineScale engine
See also
axisScaleEngine()

◆ setScaleMaxMajor()

void QwtPolarPlot::setScaleMaxMajor ( int  scaleId,
int  maxMajor 
)

Set the maximum number of major scale intervals for a specified scale.

Parameters
scaleIdScale index
maxMajormaximum number of major steps
See also
scaleMaxMajor()

◆ setScaleMaxMinor()

void QwtPolarPlot::setScaleMaxMinor ( int  scaleId,
int  maxMinor 
)

Set the maximum number of major scale intervals for a specified scale.

Parameters
scaleIdScale index
maxMinormaximum number of minor steps
See also
scaleMaxMajor()

◆ setTitle() [1/2]

void QwtPolarPlot::setTitle ( const QString &  title)

Change the plot's title.

Parameters
titleNew title

◆ setTitle() [2/2]

void QwtPolarPlot::setTitle ( const QwtText title)

Change the plot's title.

Parameters
titleNew title

◆ title()

QwtText QwtPolarPlot::title ( ) const
Returns
the plot's title

◆ titleLabel() [1/2]

QwtTextLabel * QwtPolarPlot::titleLabel ( )
Returns
the plot's title

◆ titleLabel() [2/2]

const QwtTextLabel * QwtPolarPlot::titleLabel ( ) const
Returns
the plot's title label.

◆ unzoom()

void QwtPolarPlot::unzoom ( )

Unzoom the plot.

See also
zoom()

◆ updateLegend() [1/2]

void QwtPolarPlot::updateLegend ( )

◆ updateLegend() [2/2]

void QwtPolarPlot::updateLegend ( const QwtPolarItem plotItem)

Emit legendDataChanged() for a plot item.

Parameters
plotItemPlot item
See also
QwtPlotItem::legendData(), legendDataChanged()

◆ updateScale()

void QwtPolarPlot::updateScale ( int  scaleId)

Rebuild the scale.

Parameters
scaleIdScale index

◆ visibleInterval()

QwtInterval QwtPolarPlot::visibleInterval ( ) const
Returns
Bounding interval of the radial scale that is visible on the canvas.

◆ zoom()

void QwtPolarPlot::zoom ( const QwtPointPolar zoomPos,
double  zoomFactor 
)

Translate and in/decrease the zoom factor.

In zoom mode the zoom position is in the center of the canvas. The radius of the circle depends on the size of the plot canvas, that is divided by the zoom factor. Thus a factor < 1.0 zoom in.

Setting an invalid zoom position disables zooming.

Parameters
zoomPosCenter of the translation
zoomFactorZoom factor
See also
unzoom(), zoomPos(), zoomFactor()

◆ zoomFactor()

double QwtPolarPlot::zoomFactor ( ) const
Returns
Zoom factor
See also
zoom(), zoomPos()

◆ zoomPos()

QwtPointPolar QwtPolarPlot::zoomPos ( ) const
Returns
Zoom position
See also
zoom(), zoomFactor()

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