QCPLayoutInset Class Reference

A layout that places child elements aligned to the border or arbitrarily positioned. More...

Inheritance diagram for QCPLayoutInset:

## Public Types

enum | InsetPlacement { ipFree, ipBorderAligned }

## Public Member Functions

| QCPLayoutInset ()
InsetPlacement | insetPlacement (int index) const
Qt::Alignment | insetAlignment (int index) const
QRectF | insetRect (int index) const
void | setInsetPlacement (int index, InsetPlacement placement)
void | setInsetAlignment (int index, Qt::Alignment alignment)
void | setInsetRect (int index, const QRectF &rect)
virtual void | updateLayout ()
virtual int | elementCount () const
virtual QCPLayoutElement * | elementAt (int index) const
virtual QCPLayoutElement * | takeAt (int index)
virtual bool | take (QCPLayoutElement *element)
virtual void | simplify ()
virtual double | selectTest (const QPointF &pos, bool onlySelectable, QVariant *details=0) const
void | addElement (QCPLayoutElement *element, Qt::Alignment alignment)
void | addElement (QCPLayoutElement *element, const QRectF &rect)
Public Member Functions inherited from QCPLayout
| QCPLayout ()
virtual void | update ()
virtual QList< QCPLayoutElement * > | elements (bool recursive) const
bool | removeAt (int index)
bool | remove (QCPLayoutElement *element)
void | clear ()
Public Member Functions inherited from QCPLayoutElement
| QCPLayoutElement (QCustomPlot *parentPlot=0)
QCPLayout * | layout () const
QRect | rect () const
QRect | outerRect () const
QMargins | margins () const
QMargins | minimumMargins () const
QCP::MarginSides | autoMargins () const
QSize | minimumSize () const
QSize | maximumSize () const
QCPMarginGroup * | marginGroup (QCP::MarginSide side) const
QHash< QCP::MarginSide, QCPMarginGroup * > | marginGroups () const
void | setOuterRect (const QRect &rect)
void | setMargins (const QMargins &margins)
void | setMinimumMargins (const QMargins &margins)
void | setAutoMargins (QCP::MarginSides sides)
void | setMinimumSize (const QSize &size)
void | setMinimumSize (int width, int height)
void | setMaximumSize (const QSize &size)
void | setMaximumSize (int width, int height)
void | setMarginGroup (QCP::MarginSides sides, QCPMarginGroup *group)
virtual QSize | minimumSizeHint () const
virtual QSize | maximumSizeHint () const
Public Member Functions inherited from QCPLayerable
| QCPLayerable (QCustomPlot *plot, QString targetLayer="", QCPLayerable *parentLayerable=0)
bool | visible () const
QCustomPlot * | parentPlot () const
QCPLayerable * | parentLayerable () const
QCPLayer * | layer () const
bool | antialiased () const
void | setVisible (bool on)
bool | setLayer (QCPLayer *layer)
bool | setLayer (const QString &layerName)
void | setAntialiased (bool enabled)
bool | realVisibility () const

## Protected Attributes

QList< QCPLayoutElement * > | mElements
QList< InsetPlacement > | mInsetPlacement
QList< Qt::Alignment > | mInsetAlignment
QList< QRectF > | mInsetRect
Protected Attributes inherited from QCPLayoutElement
QCPLayout * | mParentLayout
QSize | mMinimumSize
QSize | mMaximumSize
QRect | mRect
QRect | mOuterRect
QMargins | mMargins
QMargins | mMinimumMargins
QCP::MarginSides | mAutoMargins
QHash< QCP::MarginSide, QCPMarginGroup * > | mMarginGroups
Protected Attributes inherited from QCPLayerable
bool | mVisible
QCustomPlot * | mParentPlot
QPointer< QCPLayerable > | mParentLayerable
QCPLayer * | mLayer
bool | mAntialiased

## Additional Inherited Members

Protected Member Functions inherited from QCPLayout
void | sizeConstraintsChanged () const
void | adoptElement (QCPLayoutElement *el)
void | releaseElement (QCPLayoutElement *el)
QVector< int > | getSectionSizes (QVector< int > maxSizes, QVector< int > minSizes, QVector< double > stretchFactors, int totalSize) const
Protected Member Functions inherited from QCPLayoutElement
virtual int | calculateAutoMargin (QCP::MarginSide side)
virtual void | mousePressEvent (QMouseEvent *event)
virtual void | mouseMoveEvent (QMouseEvent *event)
virtual void | mouseReleaseEvent (QMouseEvent *event)
virtual void | mouseDoubleClickEvent (QMouseEvent *event)
virtual void | wheelEvent (QWheelEvent *event)
virtual void | applyDefaultAntialiasingHint (QCPPainter *painter) const
virtual void | draw (QCPPainter *painter)
virtual void | parentPlotInitialized (QCustomPlot *parentPlot)
Protected Member Functions inherited from QCPLayerable
virtual QCP::Interaction | selectionCategory () const
virtual QRect | clipRect () const
virtual void | selectEvent (QMouseEvent *event, bool additive, const QVariant &details, bool *selectionStateChanged)
virtual void | deselectEvent (bool *selectionStateChanged)
void | initializeParentPlot (QCustomPlot *parentPlot)
void | setParentLayerable (QCPLayerable *parentLayerable)
bool | moveToLayer (QCPLayer *layer, bool prepend)
void | applyAntialiasingHint (QCPPainter *painter, bool localAntialiased, QCP::AntialiasedElement overrideElement) const

## Detailed Description

A layout that places child elements aligned to the border or arbitrarily positioned.

Elements are placed either aligned to the border or at arbitrary position in the area of the layout. Which placement applies is controlled with the InsetPlacement (setInsetPlacement).

Elements are added via addElement(QCPLayoutElement *element, Qt::Alignment alignment) or addElement(QCPLayoutElement *element, const QRectF &rect). If the first method is used, the inset placement will default to ipBorderAligned and the element will be aligned according to the alignment parameter. The second method defaults to ipFree and allows placing elements at arbitrary position and size, defined by rect.

The alignment or rect can be set via setInsetAlignment or setInsetRect, respectively.

This is the layout that every QCPAxisRect has as QCPAxisRect::insetLayout.

## Member Enumeration Documentation

enum QCPLayoutInset::InsetPlacement

Defines how the placement and sizing is handled for a certain element in a QCPLayoutInset.

Enumerator
ipFree | The element may be positioned/sized arbitrarily, see setInsetRect.
ipBorderAligned | The element is aligned to one of the layout sides, see setInsetAlignment.

## Constructor & Destructor Documentation

QCPLayoutInset::QCPLayoutInset | ( |  | ) |

explicit

Creates an instance of QCPLayoutInset and sets default values.

## Member Function Documentation

void QCPLayoutInset::addElement | ( | QCPLayoutElement * | element,
|  | Qt::Alignment | alignment
| ) |  |

Adds the specified element to the layout as an inset aligned at the border (setInsetAlignment is initialized with ipBorderAligned). The alignment is set to alignment.

alignment is an or combination of the following alignment flags: Qt::AlignLeft, Qt::AlignHCenter, Qt::AlighRight, Qt::AlignTop, Qt::AlignVCenter, Qt::AlignBottom. Any other alignment flags will be ignored.

See also
  addElement(QCPLayoutElement *element, const QRectF &rect)

void QCPLayoutInset::addElement | ( | QCPLayoutElement * | element,
|  | const QRectF & | rect
| ) |  |

Adds the specified element to the layout as an inset with free positioning/sizing (setInsetAlignment is initialized with ipFree). The position and size is set to rect.

rect is given in fractions of the whole inset layout rect. So an inset with rect (0, 0, 1, 1) will span the entire layout. An inset with rect (0.6, 0.1, 0.35, 0.35) will be in the top right corner of the layout, with 35% width and height of the parent layout.

See also
  addElement(QCPLayoutElement *element, Qt::Alignment alignment)

QCPLayoutElement * QCPLayoutInset::elementAt | ( | int | index | ) | const

virtual

Returns the element in the cell with the given index. If index is invalid, returns 0.

Note that even if index is valid, the respective cell may be empty in some layouts (e.g. QCPLayoutGrid), so this function may return 0 in those cases. You may use this function to check whether a cell is empty or not.

See also
  elements, elementCount, takeAt

Implements QCPLayout.

int QCPLayoutInset::elementCount | ( |  | ) | const

virtual

Returns the number of elements/cells in the layout.

See also
  elements, elementAt

Implements QCPLayout.

Qt::Alignment QCPLayoutInset::insetAlignment | ( | int | index | ) | const

Returns the alignment of the element with the specified index. The alignment only has a meaning, if the inset placement (setInsetPlacement) is ipBorderAligned.

QCPLayoutInset::InsetPlacement QCPLayoutInset::insetPlacement | ( | int | index | ) | const

Returns the placement type of the element with the specified index.

QRectF QCPLayoutInset::insetRect | ( | int | index | ) | const

Returns the rect of the element with the specified index. The rect only has a meaning, if the inset placement (setInsetPlacement) is ipFree.

double QCPLayoutInset::selectTest | ( | const QPointF & | pos,
|  | bool | onlySelectable,
|  | QVariant * | details = `0`
| ) |  | const

virtual

The inset layout is sensitive to events only at areas where its child elements are sensitive. If the selectTest method of any of the child elements returns a positive number for pos, this method returns a value corresponding to 0.99 times the parent plot's selection tolerance. The inset layout is not selectable itself by default. So if onlySelectable is true, -1.0 is returned.

See QCPLayerable::selectTest for a general explanation of this virtual method.

Reimplemented from QCPLayoutElement.

void QCPLayoutInset::setInsetAlignment | ( | int | index,
|  | Qt::Alignment | alignment
| ) |  |

If the inset placement (setInsetPlacement) is ipBorderAligned, this function is used to set the alignment of the element with the specified index to alignment.

alignment is an or combination of the following alignment flags: Qt::AlignLeft, Qt::AlignHCenter, Qt::AlighRight, Qt::AlignTop, Qt::AlignVCenter, Qt::AlignBottom. Any other alignment flags will be ignored.

void QCPLayoutInset::setInsetPlacement | ( | int | index,
|  | QCPLayoutInset::InsetPlacement | placement
| ) |  |

Sets the inset placement type of the element with the specified index to placement.

See also
  InsetPlacement

void QCPLayoutInset::setInsetRect | ( | int | index,
|  | const QRectF & | rect
| ) |  |

If the inset placement (setInsetPlacement) is ipFree, this function is used to set the position and size of the element with the specified index to rect.

rect is given in fractions of the whole inset layout rect. So an inset with rect (0, 0, 1, 1) will span the entire layout. An inset with rect (0.6, 0.1, 0.35, 0.35) will be in the top right corner of the layout, with 35% width and height of the parent layout.

Note that the minimum and maximum sizes of the embedded element (QCPLayoutElement::setMinimumSize, QCPLayoutElement::setMaximumSize) are enforced.

void QCPLayoutInset::simplify | ( |  | ) |

inlinevirtual

The QCPInsetLayout does not need simplification since it can never have empty cells due to its linear index structure. This method does nothing.

Reimplemented from QCPLayout.

bool QCPLayoutInset::take | ( | QCPLayoutElement * | element | ) |

virtual

Removes the specified element from the layout and returns true on success.

If the element isn't in this layout, returns false.

Note that some layouts don't remove the respective cell right away but leave an empty cell after successful removal of the layout element. To collapse empty cells, use simplify.

See also
  takeAt

Implements QCPLayout.

QCPLayoutElement * QCPLayoutInset::takeAt | ( | int | index | ) |

virtual

Removes the element with the given index from the layout and returns it.

If the index is invalid or the cell with that index is empty, returns 0.

Note that some layouts don't remove the respective cell right away but leave an empty cell after successful removal of the layout element. To collapse empty cells, use simplify.

See also
  elementAt, take

Implements QCPLayout.

The documentation for this class was generated from the following files:

- qcustomplot.h
- qcustomplot.cpp