---
name: "QwtPlotAbstractBarChart"
section: "3"
platform: "linux"
package: "libqwt-doc"
version: "6.1.4-2"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/QwtPlotAbstractBarChart"
---

# QwtPlotAbstractBarChart(3)

Abstract base class for bar chart items.

## NAME

QwtPlotAbstractBarChart - Abstract base class for bar chart items.

## SYNOPSIS

`#include <qwt_plot_abstract_barchart.h>`

Inherits **QwtPlotSeriesItem**.

Inherited by **QwtPlotBarChart**, and **QwtPlotMultiBarChart**.

### Public Types

enum **LayoutPolicy** { **AutoAdjustSamples**, **ScaleSamplesToAxes**, **ScaleSampleToCanvas**, **FixedSampleSize** }\
 Mode how to calculate the bar width.

### 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 boundingSize, 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

### enum QwtPlotAbstractBarChart::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.*

## Constructor & Destructor Documentation

### QwtPlotAbstractBarChart::QwtPlotAbstractBarChart (const QwtText & title)` [explicit]`

*Constructor*

**Parameters:**

*title Title of the chart*

## Member Function Documentation

### double QwtPlotAbstractBarChart::baseline () const

**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:**

*xMap Maps x-values into pixel coordinates.* \
 *yMap Maps y-values into pixel coordinates.* \
 *canvasRect Contents rectangle of the canvas in painter coordinates* \
 *left Returns the left margin* \
 *top Returns the top margin* \
 *right Returns the right margin* \
 *bottom Returns the bottom margin*

**Returns:**

*Margin*

**See also:**

**layoutPolicy()***,* **layoutHint()***,* **QwtPlotItem::Margins** **QwtPlot::getCanvasMarginsHint()***,* **QwtPlot::updateCanvasMargins()**

*Reimplemented from* **QwtPlotItem***.*

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

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

### int QwtPlotAbstractBarChart::margin () const

**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:**

*map Scale map for the corresponding scale* \
 *canvasSize Size of the canvas in paint device coordinates* \
 *boundingSize Bounding size of the chart in plot coordinates ( used in AutoAdjustSamples mode )* \
 *value Value 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:**

*value Value for the baseline*

**See also:**

**baseline()***,* **QwtPlotSeriesItem::orientation()**

### void QwtPlotAbstractBarChart::setLayoutHint (double hint)

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

**Parameters:**

*hint Layout hint*

**See also:**

**LayoutPolicy***,* **layoutPolicy()***,* **layoutHint()**

### void QwtPlotAbstractBarChart::setLayoutPolicy (LayoutPolicy policy)

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

**Parameters:**

*policy Layout 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:**

*margin Margin*

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

### int QwtPlotAbstractBarChart::spacing () const

**Returns:**

*Spacing between 2 samples ( bars or groups of bars )*

**See also:**

**setSpacing()***,* **margin()**

## Author

*Generated automatically by Doxygen for Qwt User's Guide from the source code.*
