Qwt User's Guide  6.2.0
QwtPlotAbstractBarChart Class Reference

Abstract base class for bar chart items. More...

#include <qwt_plot_abstract_barchart.h>

Inheritance diagram for QwtPlotAbstractBarChart:

Public Types

enum  LayoutPolicy { AutoAdjustSamples , ScaleSamplesToAxes , ScaleSampleToCanvas , FixedSampleSize }
 Mode how to calculate the bar width. More...
 
- 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

 QwtPlotAbstractBarChart (const QwtText &title)
 
virtual ~QwtPlotAbstractBarChart ()
 Destructor.
 
void setLayoutPolicy (LayoutPolicy)
 
LayoutPolicy layoutPolicy () const
 
void setLayoutHint (double)
 
double layoutHint () const
 
void setSpacing (int)
 Set the spacing. More...
 
int spacing () const
 
void setMargin (int)
 Set the margin. More...
 
int margin () const
 
void setBaseline (double)
 Set the baseline. More...
 
double baseline () const
 
virtual void getCanvasMarginHint (const QwtScaleMap &xMap, const QwtScaleMap &yMap, const QRectF &canvasRect, double &left, double &top, double &right, double &bottom) const override
 Calculate a hint for the canvas margin. More...
 
- 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. More...
 
virtual void drawSeries (QPainter *painter, const QwtScaleMap &xMap, const QwtScaleMap &yMap, const QRectF &canvasRect, int from, int to) const =0
 
virtual QRectF boundingRect () const override
 
virtual void updateScaleDiv (const QwtScaleDiv &, const QwtScaleDiv &) override
 Update the item to changes of the axes scale division. More...
 
- 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. 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
 
virtual int rtti () 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 (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 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...
 
virtual QwtGraphic legendIcon (int index, const QSizeF &) const
 
- Public Member Functions inherited from QwtAbstractSeriesStore
virtual ~QwtAbstractSeriesStore ()
 Destructor.
 

Protected Member Functions

double sampleWidth (const QwtScaleMap &map, double canvasSize, double boundingSize, double value) 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. More...
 
- Protected Member Functions inherited from QwtAbstractSeriesStore
virtual void setRectOfInterest (const QRectF &)=0
 
virtual QRectF dataRect () const =0
 
virtual size_t dataSize () const =0
 

Detailed Description

Abstract base class for bar chart items.

In opposite to almost all other plot items bar charts can't be displayed inside of their bounding rectangle and need a special API how to calculate the width of the bars and how they affect the layout of the attached plot.

Definition at line 24 of file qwt_plot_abstract_barchart.h.

Member Enumeration Documentation

◆ LayoutPolicy

Mode how to calculate the bar width.

setLayoutPolicy(), setLayoutHint(), barWidthHint()

Enumerator
AutoAdjustSamples 

The sample width is calculated by dividing the bounding rectangle by the number of samples. The layoutHint() is used as a minimum width in paint device coordinates.

See also
boundingRectangle()
ScaleSamplesToAxes 

layoutHint() defines an interval in axis coordinates

ScaleSampleToCanvas 

The bar width is calculated by multiplying layoutHint() with the height or width of the canvas.

See also
boundingRectangle()
FixedSampleSize 

layoutHint() defines a fixed width in paint device coordinates.

Definition at line 32 of file qwt_plot_abstract_barchart.h.

Constructor & Destructor Documentation

◆ QwtPlotAbstractBarChart()

QwtPlotAbstractBarChart::QwtPlotAbstractBarChart ( const QwtText title)
explicit

Constructor

Parameters
titleTitle of the chart

Definition at line 48 of file qwt_plot_abstract_barchart.cpp.

Member Function Documentation

◆ baseline()

double QwtPlotAbstractBarChart::baseline ( ) const
Returns
Value for the origin of the bar chart
See also
setBaseline(), QwtPlotSeriesItem::orientation()

Definition at line 208 of file qwt_plot_abstract_barchart.cpp.

◆ getCanvasMarginHint()

void QwtPlotAbstractBarChart::getCanvasMarginHint ( const QwtScaleMap xMap,
const QwtScaleMap yMap,
const QRectF &  canvasRect,
double &  left,
double &  top,
double &  right,
double &  bottom 
) const
overridevirtual

Calculate a hint for the canvas margin.

Bar charts need to reserve some space for displaying the bars for the first and the last sample. The hint is calculated from the layoutHint() depending on the layoutPolicy().

The margins are in target device coordinates ( pixels on screen )

Parameters
xMapMaps x-values into pixel coordinates.
yMapMaps y-values into pixel coordinates.
canvasRectContents rectangle of the canvas in painter coordinates
leftReturns the left margin
topReturns the top margin
rightReturns the right margin
bottomReturns the bottom margin
Returns
Margin
See also
layoutPolicy(), layoutHint(), QwtPlotItem::Margins QwtPlot::getCanvasMarginsHint(), QwtPlot::updateCanvasMargins()

Reimplemented from QwtPlotItem.

Definition at line 289 of file qwt_plot_abstract_barchart.cpp.

◆ layoutHint()

double QwtPlotAbstractBarChart::layoutHint ( ) const

The combination of layoutPolicy() and layoutHint() define how the width of the bars is calculated

Returns
Layout policy of the chart item
See also
LayoutPolicy, setLayoutHint(), layoutPolicy()

Definition at line 119 of file qwt_plot_abstract_barchart.cpp.

◆ layoutPolicy()

QwtPlotAbstractBarChart::LayoutPolicy QwtPlotAbstractBarChart::layoutPolicy ( ) const

The combination of layoutPolicy() and layoutHint() define how the width of the bars is calculated

Returns
Layout policy of the chart item
See also
setLayoutPolicy(), layoutHint()

Definition at line 89 of file qwt_plot_abstract_barchart.cpp.

◆ margin()

int QwtPlotAbstractBarChart::margin ( ) const
Returns
Margin between the outmost bars and the contentsRect() of the canvas.
See also
setMargin(), spacing()

Definition at line 176 of file qwt_plot_abstract_barchart.cpp.

◆ sampleWidth()

double QwtPlotAbstractBarChart::sampleWidth ( const QwtScaleMap map,
double  canvasSize,
double  boundingSize,
double  value 
) const
protected

Calculate the width for a sample in paint device coordinates

Parameters
mapScale map for the corresponding scale
canvasSizeSize of the canvas in paint device coordinates
boundingSizeBounding size of the chart in plot coordinates ( used in AutoAdjustSamples mode )
valueValue of the sample
Returns
Sample width
See also
layoutPolicy(), layoutHint()

Definition at line 225 of file qwt_plot_abstract_barchart.cpp.

◆ setBaseline()

void QwtPlotAbstractBarChart::setBaseline ( double  value)

Set the baseline.

The baseline is the origin for the chart. Each bar is painted from the baseline in the direction of the sample value. In case of a horizontal orientation() the baseline is interpreted as x - otherwise as y - value.

The default value for the baseline is 0.

Parameters
valueValue for the baseline
See also
baseline(), QwtPlotSeriesItem::orientation()

Definition at line 195 of file qwt_plot_abstract_barchart.cpp.

◆ setLayoutHint()

void QwtPlotAbstractBarChart::setLayoutHint ( double  hint)

The combination of layoutPolicy() and layoutHint() define how the width of the bars is calculated

Parameters
hintLayout hint
See also
LayoutPolicy, layoutPolicy(), layoutHint()

Definition at line 102 of file qwt_plot_abstract_barchart.cpp.

◆ setLayoutPolicy()

void QwtPlotAbstractBarChart::setLayoutPolicy ( LayoutPolicy  policy)

The combination of layoutPolicy() and layoutHint() define how the width of the bars is calculated

Parameters
policyLayout policy
See also
layoutPolicy(), layoutHint()

Definition at line 73 of file qwt_plot_abstract_barchart.cpp.

◆ setMargin()

void QwtPlotAbstractBarChart::setMargin ( int  margin)

Set the margin.

The margin is the distance between the outmost bars and the contentsRect() of the canvas. The default setting is 5 pixels.

Parameters
marginMargin
See also
spacing(), margin()

Definition at line 160 of file qwt_plot_abstract_barchart.cpp.

◆ setSpacing()

void QwtPlotAbstractBarChart::setSpacing ( int  spacing)

Set the spacing.

The spacing is the distance between 2 samples ( bars for QwtPlotBarChart or a group of bars for QwtPlotMultiBarChart ) in paint device coordinates.

See also
spacing()

Definition at line 132 of file qwt_plot_abstract_barchart.cpp.

◆ spacing()

int QwtPlotAbstractBarChart::spacing ( ) const
Returns
Spacing between 2 samples ( bars or groups of bars )
See also
setSpacing(), margin()

Definition at line 146 of file qwt_plot_abstract_barchart.cpp.