QwtPlotShapeItem Class Reference

A plot item, which displays any graphical shape, that can be defined by a QPainterPath. More...

`#include <qwt_plot_shapeitem.h>`

Inheritance diagram for QwtPlotShapeItem:
[legend]

## Public Types

enum | PaintAttribute { ClipPolygons = 0x01 }
enum | LegendMode { LegendShape, LegendColor }
| Mode how to display the item on the legend. More...
typedef QFlags< PaintAttribute > | PaintAttributes
| Paint attributes.
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_PlotSVG, Rtti_PlotTradingCurve, Rtti_PlotBarChart, Rtti_PlotMultiBarChart, Rtti_PlotShape, Rtti_PlotTextLabel, Rtti_PlotZone, 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
| Plot Item Attributes.
typedef QFlags< ItemInterest > | ItemInterests
| Plot Item Interests.
typedef QFlags< RenderHint > | RenderHints
| Render hints.

## Public Member Functions

| QwtPlotShapeItem (const QString &title=QString())
| Constructor. More...
| QwtPlotShapeItem (const QwtText &title)
| Constructor. More...
virtual | ~QwtPlotShapeItem ()
| Destructor.
void | setPaintAttribute (PaintAttribute, bool on=true)
bool | testPaintAttribute (PaintAttribute) const
void | setLegendMode (LegendMode)
LegendMode | legendMode () const
void | setRect (const QRectF &)
| Set a path built from a rectangle. More...
void | setPolygon (const QPolygonF &)
| Set a path built from a polygon. More...
void | setShape (const QPainterPath &)
| Set the shape to be displayed. More...
QPainterPath | shape () const
void | setPen (const QColor &, qreal width=0.0, Qt::PenStyle=Qt::SolidLine)
void | setPen (const QPen &)
| Assign a pen. More...
QPen | pen () const
void | setBrush (const QBrush &)
QBrush | brush () const
void | setRenderTolerance (double)
| Set the tolerance for the weeding optimization. More...
double | renderTolerance () const
virtual QRectF | boundingRect () const
| Bounding rectangle of the shape.
virtual void | draw (QPainter *, const QwtScaleMap &xMap, const QwtScaleMap &yMap, const QRectF &canvasRect) const
virtual QwtGraphic | legendIcon (int index, const QSizeF &) const
virtual int | rtti () const
Public Member Functions inherited from QwtPlotItem
| QwtPlotItem (const QwtText &title=QwtText())
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 (int xAxis, int yAxis)
void | setXAxis (int axis)
int | xAxis () const
| Return xAxis.
void | setYAxis (int axis)
int | yAxis () const
| Return yAxis.
virtual void | itemChanged ()
virtual void | legendChanged ()
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 | updateScaleDiv (const QwtScaleDiv &, const QwtScaleDiv &)
| Update the item to changes of the axes scale division. 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...

## Additional Inherited Members

Protected Member Functions inherited from QwtPlotItem
QwtGraphic | defaultIcon (const QBrush &, const QSizeF &) const
| Return a default icon from a brush. More...

## Detailed Description

A plot item, which displays any graphical shape, that can be defined by a QPainterPath.

A QPainterPath is a shape composed from intersecting and uniting regions, rectangles, ellipses or irregular areas defined by lines, and curves. QwtPlotShapeItem displays a shape with a pen and brush.

QwtPlotShapeItem offers a couple of optimizations like clipping or weeding. These algorithms need to convert the painter path into polygons that might be less performant for paths built from curves and ellipses.

See also
  QwtPlotZone

## Member Enumeration Documentation

## LegendMode

enum QwtPlotShapeItem::LegendMode

Mode how to display the item on the legend.

Enumerator
LegendShape | Display a scaled down version of the shape.
LegendColor | Display a filled rectangle.

## PaintAttribute

enum QwtPlotShapeItem::PaintAttribute

Attributes to modify the drawing algorithm. The default disables all attributes

See also
  setPaintAttribute(), testPaintAttribute()

Enumerator
ClipPolygons | Clip polygons before painting them. In situations, where points are far outside the visible area (f.e when zooming deep) this might be a substantial improvement for the painting performance But polygon clipping will convert the painter path into polygons what might introduce a negative impact on the performance of paths composed from curves or ellipses.

## Constructor & Destructor Documentation

## QwtPlotShapeItem() [1/2]

QwtPlotShapeItem::QwtPlotShapeItem | ( | const QString & | title = `QString()` | ) |

explicit

Constructor.

Sets the following item attributes:

- QwtPlotItem::AutoScale: true
- QwtPlotItem::Legend: false

Parameters

  title | Title

## QwtPlotShapeItem() [2/2]

QwtPlotShapeItem::QwtPlotShapeItem | ( | const QwtText & | title | ) |

explicit

Constructor.

Sets the following item attributes:

- QwtPlotItem::AutoScale: true
- QwtPlotItem::Legend: false

Parameters

  title | Title

## Member Function Documentation

## brush()

QBrush QwtPlotShapeItem::brush | ( |  | ) | const

Returns
  Brush used to fill the shape

See also
  setBrush(), pen()

## draw()

void QwtPlotShapeItem::draw | ( | QPainter * | painter,
|  | const QwtScaleMap & | xMap,
|  | const QwtScaleMap & | yMap,
|  | const QRectF & | canvasRect
| ) |  | const

virtual

Draw the shape item

Parameters

  painter | Painter
  xMap | X-Scale Map
  yMap | Y-Scale Map
  canvasRect | Contents rect of the plot canvas

Implements QwtPlotItem.

## legendIcon()

QwtGraphic QwtPlotShapeItem::legendIcon | ( | int | index,
|  | const QSizeF & | size
| ) |  | const

virtual

Returns
  A rectangle filled with the color of the brush ( or the pen )

Parameters

  index | Index of the legend entry ( usually there is only one )
  size | Icon size

See also
  setLegendIconSize(), legendData()

Reimplemented from QwtPlotItem.

## legendMode()

QwtPlotShapeItem::LegendMode QwtPlotShapeItem::legendMode | ( |  | ) | const

Returns
  Mode how to represent the item on the legend

See also
  legendMode()

## pen()

QPen QwtPlotShapeItem::pen | ( |  | ) | const

Returns
  Pen used to draw the outline of the shape

See also
  setPen(), brush()

## renderTolerance()

double QwtPlotShapeItem::renderTolerance | ( |  | ) | const

Returns
  Tolerance for the weeding optimization

See also
  setRenderTolerance()

## rtti()

int QwtPlotShapeItem::rtti | ( |  | ) | const

virtual

Returns
  QwtPlotItem::Rtti_PlotShape

Reimplemented from QwtPlotItem.

## setBrush()

void QwtPlotShapeItem::setBrush | ( | const QBrush & | brush | ) |

Assign a brush.

The brush is used to fill the path

Parameters

  brush | Brush

See also
  brush(), pen()

## setLegendMode()

void QwtPlotShapeItem::setLegendMode | ( | LegendMode | mode | ) |

Set the mode how to represent the item on the legend

Parameters

  mode | Mode

See also
  legendMode()

## setPaintAttribute()

void QwtPlotShapeItem::setPaintAttribute | ( | PaintAttribute | attribute,
|  | bool | on = `true`
| ) |  |

Specify an attribute how to draw the shape

Parameters

  attribute | Paint attribute
  on | On/Off

See also
  testPaintAttribute()

## setPen() [1/2]

void QwtPlotShapeItem::setPen | ( | const QColor & | color,
|  | qreal | width = `0.0`,
|  | Qt::PenStyle | style = `Qt::SolidLine`
| ) |  |

Build and assign a pen

In Qt5 the default pen width is 1.0 ( 0.0 in Qt4 ) what makes it non cosmetic ( see QPen::isCosmetic() ). This method has been introduced to hide this incompatibility.

Parameters

  color | Pen color
  width | Pen width
  style | Pen style

See also
  pen(), brush()

## setPen() [2/2]

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

Assign a pen.

The pen is used to draw the outline of the shape

Parameters

  pen | Pen

See also
  pen(), brush()

## setPolygon()

void QwtPlotShapeItem::setPolygon | ( | const QPolygonF & | polygon | ) |

Set a path built from a polygon.

Parameters

  polygon | Polygon

See also
  setShape(), setRect(), shape()

## setRect()

void QwtPlotShapeItem::setRect | ( | const QRectF & | rect | ) |

Set a path built from a rectangle.

Parameters

  rect | Rectangle

See also
  setShape(), setPolygon(), shape()

## setRenderTolerance()

void QwtPlotShapeItem::setRenderTolerance | ( | double | tolerance | ) |

Set the tolerance for the weeding optimization.

After translating the shape into target device coordinate ( usually widget geometries ) the painter path can be simplified by a point weeding algorithm ( Douglas-Peucker ).

For shapes built from curves and ellipses weeding might have the opposite effect because they have to be expanded to polygons.

Parameters

  tolerance | Accepted error when reducing the number of points A value <= 0.0 disables weeding.

See also
  renderTolerance(), QwtWeedingCurveFitter

## setShape()

void QwtPlotShapeItem::setShape | ( | const QPainterPath & | shape | ) |

Set the shape to be displayed.

Parameters

  shape | Shape

See also
  setShape(), shape()

## shape()

QPainterPath QwtPlotShapeItem::shape | ( |  | ) | const

Returns
  Shape to be displayed

See also
  setShape()

## testPaintAttribute()

bool QwtPlotShapeItem::testPaintAttribute | ( | PaintAttribute | attribute | ) | const

Returns
  True, when attribute is enabled

See also
  setPaintAttribute()