Qwt User's Guide 6.3.0
Loading...
Searching...
No Matches
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
 
- 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_PlotGraphic , Rtti_PlotTradingCurve ,
  Rtti_PlotBarChart , Rtti_PlotMultiBarChart , Rtti_PlotShape , Rtti_PlotTextLabel ,
  Rtti_PlotZone , Rtti_PlotVectorField , 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
 
typedef QFlags< ItemInterestItemInterests
 
typedef QFlags< RenderHintRenderHints
 

Public Member Functions

 QwtPlotShapeItem (const QString &title=QString())
 Constructor.
 
 QwtPlotShapeItem (const QwtText &title)
 Constructor.
 
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.
 
void setPolygon (const QPolygonF &)
 Set a path built from a polygon.
 
void setShape (const QPainterPath &)
 Set the shape to be displayed.
 
QPainterPath shape () const
 
void setPen (const QColor &, qreal width=0.0, Qt::PenStyle=Qt::SolidLine)
 
void setPen (const QPen &)
 Assign a pen.
 
QPen pen () const
 
void setBrush (const QBrush &)
 
QBrush brush () const
 
void setRenderTolerance (double)
 Set the tolerance for the weeding optimization.
 
double renderTolerance () const
 
virtual QRectF boundingRect () const override
 Bounding rectangle of the shape.
 
virtual void draw (QPainter *, const QwtScaleMap &xMap, const QwtScaleMap &yMap, const QRectF &canvasRect) const override
 
virtual QwtGraphic legendIcon (int index, const QSizeF &) const override
 
virtual int rtti () const override
 
- Public Member Functions inherited from QwtPlotItem
 QwtPlotItem ()
 
 QwtPlotItem (const QString &title)
 
 QwtPlotItem (const QwtText &title)
 
virtual ~QwtPlotItem ()
 Destroy the QwtPlotItem.
 
void attach (QwtPlot *plot)
 Attach the item to a plot.
 
void detach ()
 This method detaches a QwtPlotItem from any QwtPlot it has been associated with.
 
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.
 
void show ()
 Show the item.
 
void hide ()
 Hide the item.
 
virtual void setVisible (bool)
 
bool isVisible () const
 
void setAxes (QwtAxisId xAxis, QwtAxisId yAxis)
 
void setXAxis (QwtAxisId)
 
QwtAxisId xAxis () const
 Return xAxis.
 
void setYAxis (QwtAxisId)
 
QwtAxisId 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.
 
virtual void updateScaleDiv (const QwtScaleDiv &, const QwtScaleDiv &)
 Update the item to changes of the axes scale division.
 
virtual void updateLegend (const QwtPlotItem *, const QList< QwtLegendData > &)
 Update the item to changes of the legend info.
 
QRectF scaleRect (const QwtScaleMap &, const QwtScaleMap &) const
 Calculate the bounding scale rectangle of 2 maps.
 
QRectF paintRect (const QwtScaleMap &, const QwtScaleMap &) const
 Calculate the bounding paint rectangle of 2 maps.
 
virtual QList< QwtLegendDatalegendData () const
 Return all information, that is needed to represent the item on the legend.
 

Additional Inherited Members

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

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.

More complex shapes, that can't be expressed by a QPainterPath can be displayed using QwtPlotGraphicItem.

See also
QwtPlotZone, QwtPlotGraphicItem

Definition at line 38 of file qwt_plot_shapeitem.h.

Member Typedef Documentation

◆ PaintAttributes

An ORed combination of PaintAttribute values.

Definition at line 61 of file qwt_plot_shapeitem.h.

Member Enumeration Documentation

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

Definition at line 64 of file qwt_plot_shapeitem.h.

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

Definition at line 47 of file qwt_plot_shapeitem.h.

Constructor & Destructor Documentation

◆ QwtPlotShapeItem() [1/2]

QwtPlotShapeItem::QwtPlotShapeItem ( const QString & title = QString())
explicit

Constructor.

Sets the following item attributes:

Parameters
titleTitle

Definition at line 112 of file qwt_plot_shapeitem.cpp.

◆ QwtPlotShapeItem() [2/2]

QwtPlotShapeItem::QwtPlotShapeItem ( const QwtText & title)
explicit

Constructor.

Sets the following item attributes:

Parameters
titleTitle

Definition at line 127 of file qwt_plot_shapeitem.cpp.

◆ ~QwtPlotShapeItem()

QwtPlotShapeItem::~QwtPlotShapeItem ( )
virtual

Destructor.

Definition at line 134 of file qwt_plot_shapeitem.cpp.

Member Function Documentation

◆ boundingRect()

QRectF QwtPlotShapeItem::boundingRect ( ) const
overridevirtual

Bounding rectangle of the shape.

Reimplemented from QwtPlotItem.

Definition at line 205 of file qwt_plot_shapeitem.cpp.

◆ brush()

QBrush QwtPlotShapeItem::brush ( ) const
Returns
Brush used to fill the shape
See also
setBrush(), pen()

Definition at line 336 of file qwt_plot_shapeitem.cpp.

◆ draw()

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

Draw the shape item

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

Implements QwtPlotItem.

Definition at line 385 of file qwt_plot_shapeitem.cpp.

◆ legendIcon()

QwtGraphic QwtPlotShapeItem::legendIcon ( int index,
const QSizeF & size ) const
overridevirtual
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.

Definition at line 463 of file qwt_plot_shapeitem.cpp.

◆ legendMode()

QwtPlotShapeItem::LegendMode QwtPlotShapeItem::legendMode ( ) const
Returns
Mode how to represent the item on the legend
See also
legendMode()

Definition at line 199 of file qwt_plot_shapeitem.cpp.

◆ pen()

QPen QwtPlotShapeItem::pen ( ) const
Returns
Pen used to draw the outline of the shape
See also
setPen(), brush()

Definition at line 310 of file qwt_plot_shapeitem.cpp.

◆ renderTolerance()

double QwtPlotShapeItem::renderTolerance ( ) const
Returns
Tolerance for the weeding optimization
See also
setRenderTolerance()

Definition at line 372 of file qwt_plot_shapeitem.cpp.

◆ rtti()

int QwtPlotShapeItem::rtti ( ) const
overridevirtual
Returns
QwtPlotItem::Rtti_PlotShape

Reimplemented from QwtPlotItem.

Definition at line 151 of file qwt_plot_shapeitem.cpp.

◆ setBrush()

void QwtPlotShapeItem::setBrush ( const QBrush & brush)

Assign a brush.

The brush is used to fill the path

Parameters
brushBrush
See also
brush(), pen()

Definition at line 323 of file qwt_plot_shapeitem.cpp.

◆ setLegendMode()

void QwtPlotShapeItem::setLegendMode ( LegendMode mode)

Set the mode how to represent the item on the legend

Parameters
modeMode
See also
legendMode()

Definition at line 186 of file qwt_plot_shapeitem.cpp.

◆ setPaintAttribute()

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

Specify an attribute how to draw the shape

Parameters
attributePaint attribute
onOn/Off
See also
testPaintAttribute()

Definition at line 163 of file qwt_plot_shapeitem.cpp.

◆ 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
colorPen color
widthPen width
stylePen style
See also
pen(), brush()

Definition at line 284 of file qwt_plot_shapeitem.cpp.

◆ setPen() [2/2]

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

Definition at line 297 of file qwt_plot_shapeitem.cpp.

◆ setPolygon()

void QwtPlotShapeItem::setPolygon ( const QPolygonF & polygon)

Set a path built from a polygon.

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

Definition at line 230 of file qwt_plot_shapeitem.cpp.

◆ setRect()

void QwtPlotShapeItem::setRect ( const QRectF & rect)

Set a path built from a rectangle.

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

Definition at line 216 of file qwt_plot_shapeitem.cpp.

◆ 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
toleranceAccepted error when reducing the number of points A value <= 0.0 disables weeding.
See also
renderTolerance(), QwtWeedingCurveFitter

Definition at line 357 of file qwt_plot_shapeitem.cpp.

◆ setShape()

void QwtPlotShapeItem::setShape ( const QPainterPath & shape)

Set the shape to be displayed.

Parameters
shapeShape
See also
setShape(), shape()

Definition at line 244 of file qwt_plot_shapeitem.cpp.

◆ shape()

QPainterPath QwtPlotShapeItem::shape ( ) const
Returns
Shape to be displayed
See also
setShape()

Definition at line 266 of file qwt_plot_shapeitem.cpp.

◆ testPaintAttribute()

bool QwtPlotShapeItem::testPaintAttribute ( PaintAttribute attribute) const
Returns
True, when attribute is enabled
See also
setPaintAttribute()

Definition at line 175 of file qwt_plot_shapeitem.cpp.