Qwt User's Guide  6.1.3
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:

Public Types

enum  PaintAttribute { ClipPolygons = 0x01 }
 
enum  LegendMode { LegendShape, LegendColor }
 Mode how to display the item on the legend. More...
 
typedef QFlags< PaintAttributePaintAttributes
 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< ItemAttributeItemAttributes
 Plot Item Attributes.
 
typedef QFlags< ItemInterestItemInterests
 Plot Item Interests.
 
typedef QFlags< RenderHintRenderHints
 Render hints.
 

Public Member Functions

 QwtPlotShapeItem (const QString &title=QString::null)
 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 *p, const QwtScaleMap &xMap, const QwtScaleMap &yMap, const QRectF &rect) 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...
 
QwtPlotplot () const
 Return attached plot.
 
void setTitle (const QString &title)
 
void setTitle (const QwtText &title)
 
const QwtTexttitle () 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 &canvasSize, 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< QwtLegendDatalegendData () 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

Mode how to display the item on the legend.

Enumerator
LegendShape 

Display a scaled down version of the shape.

LegendColor 

Display a filled rectangle.

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::QwtPlotShapeItem ( const QString &  title = QString::null)
explicit

Constructor.

Sets the following item attributes:

Parameters
titleTitle
QwtPlotShapeItem::QwtPlotShapeItem ( const QwtText title)
explicit

Constructor.

Sets the following item attributes:

Parameters
titleTitle

Member Function Documentation

QBrush QwtPlotShapeItem::brush ( ) const
Returns
Brush used to fill the shape
See also
setBrush(), pen()
void QwtPlotShapeItem::draw ( QPainter *  painter,
const QwtScaleMap xMap,
const QwtScaleMap yMap,
const QRectF &  canvasRect 
) const
virtual

Draw the shape item

Parameters
painterPainter
xMapX-Scale Map
yMapY-Scale Map
canvasRectContents rect of the plot canvas

Implements QwtPlotItem.

QwtGraphic QwtPlotShapeItem::legendIcon ( int  index,
const QSizeF &  size 
) const
virtual
Returns
A rectangle filled with the color of the brush ( or the pen )
Parameters
indexIndex of the legend entry ( usually there is only one )
sizeIcon size
See also
setLegendIconSize(), legendData()

Reimplemented from QwtPlotItem.

QwtPlotShapeItem::LegendMode QwtPlotShapeItem::legendMode ( ) const
Returns
Mode how to represent the item on the legend
See also
legendMode()
QPen QwtPlotShapeItem::pen ( ) const
Returns
Pen used to draw the outline of the shape
See also
setPen(), brush()
double QwtPlotShapeItem::renderTolerance ( ) const
Returns
Tolerance for the weeding optimization
See also
setRenderTolerance()
int QwtPlotShapeItem::rtti ( ) const
virtual
Returns
QwtPlotItem::Rtti_PlotShape

Reimplemented from QwtPlotItem.

void QwtPlotShapeItem::setBrush ( const QBrush &  brush)

Assign a brush.

The brush is used to fill the path

Parameters
brushBrush
See also
brush(), pen()
void QwtPlotShapeItem::setLegendMode ( LegendMode  mode)

Set the mode how to represent the item on the legend

Parameters
modeMode
See also
legendMode()
void QwtPlotShapeItem::setPaintAttribute ( PaintAttribute  attribute,
bool  on = true 
)

Specify an attribute how to draw the shape

Parameters
attributePaint attribute
onOn/Off
See also
testPaintAttribute()
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
colorPen color
widthPen width
stylePen style
See also
pen(), brush()
void QwtPlotShapeItem::setPen ( const QPen &  pen)

Assign a pen.

The pen is used to draw the outline of the shape

Parameters
penPen
See also
pen(), brush()
void QwtPlotShapeItem::setPolygon ( const QPolygonF &  polygon)

Set a path built from a polygon.

Parameters
polygonPolygon
See also
setShape(), setRect(), shape()
void QwtPlotShapeItem::setRect ( const QRectF &  rect)

Set a path built from a rectangle.

Parameters
rectRectangle
See also
setShape(), setPolygon(), shape()
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
toleranceAccepted error when reducing the number of points A value <= 0.0 disables weeding.
See also
renderTolerance(), QwtWeedingCurveFitter
void QwtPlotShapeItem::setShape ( const QPainterPath &  shape)

Set the shape to be displayed.

Parameters
shapeShape
See also
setShape(), shape()
QPainterPath QwtPlotShapeItem::shape ( ) const
Returns
Shape to be displayed
See also
setShape()
bool QwtPlotShapeItem::testPaintAttribute ( PaintAttribute  attribute) const
Returns
True, when attribute is enabled
See also
setPaintAttribute()