Qwt User's Guide
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 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.
int spacing () const
void setMargin (int)
 Set the margin.
int margin () const
void setBaseline (double)
 Set the baseline.
double baseline () const
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.

Protected Member Functions

double sampleWidth (const QwtScaleMap &map, double canvasSize, double dataSize, double value) const

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.


Member Enumeration Documentation

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.


Constructor & Destructor Documentation

Constructor

Parameters:
titleTitle of the chart

Member Function Documentation

Returns:
Value for the origin of the bar chart
See also:
setBaseline(), QwtPlotSeriesItem::orientation()
void QwtPlotAbstractBarChart::getCanvasMarginHint ( const QwtScaleMap xMap,
const QwtScaleMap yMap,
const QRectF &  canvasRect,
double &  left,
double &  top,
double &  right,
double &  bottom 
) const [virtual]

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.

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

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()
Returns:
Margin between the outmost bars and the contentsRect() of the canvas.
See also:
setMargin(), spacing()
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()
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()

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

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

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

Parameters:
policyLayout policy
See also:
layoutPolicy(), layoutHint()
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()
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()
Returns:
Spacing between 2 samples ( bars or groups of bars )
See also:
setSpacing(), margin()

List of all members.

 All Classes Functions Variables Typedefs Enumerations Enumerator