Qwt User's Guide 6.3.0
Loading...
Searching...
No Matches
QwtPlotIntervalCurve Class Reference

QwtPlotIntervalCurve represents a series of samples, where each value is associated with an interval ( $[y1,y2] = f(x)$ ). More...

#include <qwt_plot_intervalcurve.h>

Inheritance diagram for QwtPlotIntervalCurve:

Public Types

enum  CurveStyle { NoCurve , Tube , UserCurve = 100 }
 Curve styles. The default setting is QwtPlotIntervalCurve::Tube. More...
 
enum  PaintAttribute { ClipPolygons = 0x01 , ClipSymbol = 0x02 , TubeAsLines = 0x10 }
 
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

 QwtPlotIntervalCurve (const QString &title=QString())
 
 QwtPlotIntervalCurve (const QwtText &title)
 
virtual ~QwtPlotIntervalCurve ()
 Destructor.
 
virtual int rtti () const override
 
void setPaintAttribute (PaintAttribute, bool on=true)
 
bool testPaintAttribute (PaintAttribute) const
 
void setSamples (const QVector< QwtIntervalSample > &)
 
void setSamples (QwtSeriesData< QwtIntervalSample > *)
 
void setPen (const QColor &, qreal width=0.0, Qt::PenStyle=Qt::SolidLine)
 
void setPen (const QPen &)
 Assign a pen.
 
const QPen & pen () const
 
void setBrush (const QBrush &)
 
const QBrush & brush () const
 
void setStyle (CurveStyle style)
 
CurveStyle style () const
 
void setSymbol (const QwtIntervalSymbol *)
 
const QwtIntervalSymbolsymbol () const
 
virtual void drawSeries (QPainter *, const QwtScaleMap &xMap, const QwtScaleMap &yMap, const QRectF &canvasRect, int from, int to) const override
 
virtual QRectF boundingRect () const override
 
virtual QwtGraphic legendIcon (int index, const QSizeF &) const override
 
- Public Member Functions inherited from QwtPlotSeriesItem
 QwtPlotSeriesItem (const QString &title=QString())
 
 QwtPlotSeriesItem (const QwtText &title)
 
virtual ~QwtPlotSeriesItem ()
 Destructor.
 
void setOrientation (Qt::Orientation)
 
Qt::Orientation orientation () const
 
virtual void draw (QPainter *, const QwtScaleMap &xMap, const QwtScaleMap &yMap, const QRectF &canvasRect) const override
 Draw the complete series.
 
virtual void updateScaleDiv (const QwtScaleDiv &, const QwtScaleDiv &) override
 Update the item to changes of the axes scale division.
 
- 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 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.
 
- Public Member Functions inherited from QwtAbstractSeriesStore
virtual ~QwtAbstractSeriesStore ()
 Destructor.
 
- Public Member Functions inherited from QwtSeriesStore< QwtIntervalSample >
 QwtSeriesStore ()
 Constructor The store contains no series.
 
 ~QwtSeriesStore ()
 Destructor.
 
void setData (QwtSeriesData< QwtIntervalSample > *series)
 
QwtSeriesData< QwtIntervalSample > * data ()
 
const QwtSeriesData< QwtIntervalSample > * data () const
 
QwtIntervalSample sample (int index) const
 
virtual size_t dataSize () const override
 
virtual QRectF dataRect () const override
 
virtual void setRectOfInterest (const QRectF &rect) override
 
QwtSeriesData< QwtIntervalSample > * swapData (QwtSeriesData< QwtIntervalSample > *series)
 

Protected Member Functions

void init ()
 Initialize internal members.
 
virtual void drawTube (QPainter *, const QwtScaleMap &xMap, const QwtScaleMap &yMap, const QRectF &canvasRect, int from, int to) const
 
virtual void drawSymbols (QPainter *, const QwtIntervalSymbol &, const QwtScaleMap &xMap, const QwtScaleMap &yMap, const QRectF &canvasRect, int from, int to) const
 
- Protected Member Functions inherited from QwtPlotSeriesItem
virtual void dataChanged () override
 dataChanged() indicates, that the series has been changed.
 
- Protected Member Functions inherited from QwtPlotItem
QwtGraphic defaultIcon (const QBrush &, const QSizeF &) const
 Return a default icon from a brush.
 

Detailed Description

QwtPlotIntervalCurve represents a series of samples, where each value is associated with an interval ( $[y1,y2] = f(x)$ ).

The representation depends on the style() and an optional symbol() that is displayed for each interval. QwtPlotIntervalCurve might be used to display error bars or the area between 2 curves.

Definition at line 27 of file qwt_plot_intervalcurve.h.

Member Typedef Documentation

◆ PaintAttributes

An ORed combination of PaintAttribute values.

Definition at line 98 of file qwt_plot_intervalcurve.h.

Member Enumeration Documentation

◆ CurveStyle

Curve styles. The default setting is QwtPlotIntervalCurve::Tube.

See also
setStyle(), style()
Enumerator
NoCurve 

Don't draw a curve. Note: This doesn't affect the symbols.

Tube 

Build 2 curves from the upper and lower limits of the intervals and draw them with the pen(). The area between the curves is filled with the brush().

UserCurve 

Styles >= QwtPlotIntervalCurve::UserCurve are reserved for derived classes that overload drawSeries() with additional application specific curve types.

Definition at line 38 of file qwt_plot_intervalcurve.h.

◆ PaintAttribute

Attributes to modify the drawing algorithm.

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.

ClipSymbol 

Check if a symbol is on the plot canvas before painting it.

TubeAsLines 

Fill the tube with horizontal or vertical lines and unite overlapping border lines. This attribute is useful for large data sets, where consecutive samples are often mapped to the same coordinate.

Beside other minor visual differences the filling is always monochrome - using brush().color().

This algorithm is very fast and effective and can be used inside a replot cycle. In the worst case the number of lines to be rendered will be 5 times the ( width/height - depending on the orientation() ) of the plot canvas.

Note
Has only an effect, when drawing to a paint device in integer coordinates ( f.e. all widgets on screen ).
See also
QwtPlotCurve::FilterPointsAggressive

Definition at line 64 of file qwt_plot_intervalcurve.h.

Constructor & Destructor Documentation

◆ QwtPlotIntervalCurve() [1/2]

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

Constructor

Parameters
titleTitle of the curve

Definition at line 524 of file qwt_plot_intervalcurve.cpp.

◆ QwtPlotIntervalCurve() [2/2]

QwtPlotIntervalCurve::QwtPlotIntervalCurve ( const QwtText & title)
explicit

Constructor

Parameters
titleTitle of the curve

Definition at line 514 of file qwt_plot_intervalcurve.cpp.

◆ ~QwtPlotIntervalCurve()

QwtPlotIntervalCurve::~QwtPlotIntervalCurve ( )
virtual

Destructor.

Definition at line 531 of file qwt_plot_intervalcurve.cpp.

Member Function Documentation

◆ boundingRect()

QRectF QwtPlotIntervalCurve::boundingRect ( ) const
overridevirtual
Returns
Bounding rectangle of all samples. For an empty series the rectangle is invalid.

Reimplemented from QwtPlotSeriesItem.

Definition at line 734 of file qwt_plot_intervalcurve.cpp.

◆ brush()

const QBrush & QwtPlotIntervalCurve::brush ( ) const
Returns
Brush used to fill the area in Tube style()
See also
setBrush(), setStyle(), CurveStyle

Definition at line 725 of file qwt_plot_intervalcurve.cpp.

◆ drawSeries()

void QwtPlotIntervalCurve::drawSeries ( QPainter * painter,
const QwtScaleMap & xMap,
const QwtScaleMap & yMap,
const QRectF & canvasRect,
int from,
int to ) const
overridevirtual

Draw a subset of the samples

Parameters
painterPainter
xMapMaps x-values into pixel coordinates.
yMapMaps y-values into pixel coordinates.
canvasRectContents rectangle of the canvas
fromIndex of the first sample to be painted
toIndex of the last sample to be painted. If to < 0 the series will be painted to its last sample.
See also
drawTube(), drawSymbols()

Implements QwtPlotSeriesItem.

Definition at line 756 of file qwt_plot_intervalcurve.cpp.

◆ drawSymbols()

void QwtPlotIntervalCurve::drawSymbols ( QPainter * painter,
const QwtIntervalSymbol & symbol,
const QwtScaleMap & xMap,
const QwtScaleMap & yMap,
const QRectF & canvasRect,
int from,
int to ) const
protectedvirtual

Draw symbols for a subset of the samples

Parameters
painterPainter
symbolInterval symbol
xMapx map
yMapy map
canvasRectContents rectangle of the canvas
fromIndex of the first sample to be painted
toIndex of the last sample to be painted
See also
setSymbol(), drawSeries(), drawTube()

Definition at line 829 of file qwt_plot_intervalcurve.cpp.

◆ drawTube()

void QwtPlotIntervalCurve::drawTube ( QPainter * painter,
const QwtScaleMap & xMap,
const QwtScaleMap & yMap,
const QRectF & canvasRect,
int from,
int to ) const
protectedvirtual

Draw a tube

Builds 2 curves from the upper and lower limits of the intervals and draws them with the pen(). The area between the curves is filled with the brush().

Parameters
painterPainter
xMapMaps x-values into pixel coordinates.
yMapMaps y-values into pixel coordinates.
canvasRectContents rectangle of the canvas
fromIndex of the first sample to be painted
toIndex of the last sample to be painted. If to < 0 the series will be painted to its last sample.
See also
drawSeries(), drawSymbols()

Definition at line 797 of file qwt_plot_intervalcurve.cpp.

◆ init()

void QwtPlotIntervalCurve::init ( )
protected

Initialize internal members.

Definition at line 537 of file qwt_plot_intervalcurve.cpp.

◆ legendIcon()

QwtGraphic QwtPlotIntervalCurve::legendIcon ( int index,
const QSizeF & size ) const
overridevirtual
Returns
Icon for the legend

In case of Tube style() the icon is a plain rectangle filled with the brush(). If a symbol is assigned it is scaled to size.

Parameters
indexIndex of the legend entry ( ignored as there is only one )
sizeIcon size
See also
QwtPlotItem::setLegendIconSize(), QwtPlotItem::legendData()

Reimplemented from QwtPlotItem.

Definition at line 896 of file qwt_plot_intervalcurve.cpp.

◆ pen()

const QPen & QwtPlotIntervalCurve::pen ( ) const
Returns
Pen used to draw the lines
See also
setPen(), brush()

Definition at line 697 of file qwt_plot_intervalcurve.cpp.

◆ rtti()

int QwtPlotIntervalCurve::rtti ( ) const
overridevirtual
Returns
QwtPlotItem::Rtti_PlotIntervalCurve

Reimplemented from QwtPlotItem.

Definition at line 549 of file qwt_plot_intervalcurve.cpp.

◆ setBrush()

void QwtPlotIntervalCurve::setBrush ( const QBrush & brush)

Assign a brush.

The brush is used to fill the area in Tube style().

Parameters
brushBrush
See also
brush(), pen(), setStyle(), CurveStyle

Definition at line 710 of file qwt_plot_intervalcurve.cpp.

◆ setPaintAttribute()

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

Specify an attribute how to draw the curve

Parameters
attributePaint attribute
onOn/Off
See also
testPaintAttribute()

Definition at line 561 of file qwt_plot_intervalcurve.cpp.

◆ setPen() [1/2]

void QwtPlotIntervalCurve::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 672 of file qwt_plot_intervalcurve.cpp.

◆ setPen() [2/2]

void QwtPlotIntervalCurve::setPen ( const QPen & pen)

Assign a pen.

Parameters
penNew pen
See also
pen(), brush()

Definition at line 682 of file qwt_plot_intervalcurve.cpp.

◆ setSamples() [1/2]

void QwtPlotIntervalCurve::setSamples ( const QVector< QwtIntervalSample > & samples)

Initialize data with an array of samples.

Parameters
samplesVector of samples

Definition at line 584 of file qwt_plot_intervalcurve.cpp.

◆ setSamples() [2/2]

void QwtPlotIntervalCurve::setSamples ( QwtSeriesData< QwtIntervalSample > * data)

Assign a series of samples

setSamples() is just a wrapper for setData() without any additional value - beside that it is easier to find for the developer.

Parameters
dataData
Warning
The item takes ownership of the data object, deleting it when its not used anymore.

Definition at line 600 of file qwt_plot_intervalcurve.cpp.

◆ setStyle()

void QwtPlotIntervalCurve::setStyle ( CurveStyle style)

Set the curve's drawing style

Parameters
styleCurve style
See also
CurveStyle, style()

Definition at line 612 of file qwt_plot_intervalcurve.cpp.

◆ setSymbol()

void QwtPlotIntervalCurve::setSymbol ( const QwtIntervalSymbol * symbol)

Assign a symbol.

Parameters
symbolSymbol
See also
symbol()

Definition at line 638 of file qwt_plot_intervalcurve.cpp.

◆ style()

QwtPlotIntervalCurve::CurveStyle QwtPlotIntervalCurve::style ( ) const
Returns
Style of the curve
See also
setStyle()

Definition at line 627 of file qwt_plot_intervalcurve.cpp.

◆ symbol()

const QwtIntervalSymbol * QwtPlotIntervalCurve::symbol ( ) const
Returns
Current symbol or NULL, when no symbol has been assigned
See also
setSymbol()

Definition at line 654 of file qwt_plot_intervalcurve.cpp.

◆ testPaintAttribute()

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

Definition at line 574 of file qwt_plot_intervalcurve.cpp.