Main Page · Class Overview · Hierarchy · All Classes · Special Pages
Public Types | Public Functions
QCPLayoutInset Class Reference

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

Inheritance diagram for QCPLayoutInset:
Inheritance graph

Public Types

enum   InsetPlacement
 
- Public Types inherited from QCPLayoutElement
enum   UpdatePhase
 
 

Public Functions

 
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 QCPLayoutElementelementAt (int index) const
 
virtual QCPLayoutElementtakeAt (int index)
 
virtual bool  take (QCPLayoutElement *element)
 
virtual void  simplify ()
 
virtual double  selectTest (const QPointF &pos, bool onlySelectable, QVariant *details=nullptr) const
 
void  addElement (QCPLayoutElement *element, Qt::Alignment alignment)
 
void  addElement (QCPLayoutElement *element, const QRectF &rect)
 
- Public Functions inherited from QCPLayout
  QCPLayout ()
 
virtual void  update (UpdatePhase phase)
 
virtual QList< QCPLayoutElement * >  elements (bool recursive) const
 
bool  removeAt (int index)
 
bool  remove (QCPLayoutElement *element)
 
void  clear ()
 
- Public Functions inherited from QCPLayoutElement
  QCPLayoutElement (QCustomPlot *parentPlot=nullptr)
 
QCPLayoutlayout () const
 
QRect  rect () const
 
QRect  outerRect () const
 
QMargins  margins () const
 
QMargins  minimumMargins () const
 
QCP::MarginSides  autoMargins () const
 
QSize  minimumSize () const
 
QSize  maximumSize () const
 
SizeConstraintRect  sizeConstraintRect () const
 
QCPMarginGroupmarginGroup (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  setSizeConstraintRect (SizeConstraintRect constraintRect)
 
void  setMarginGroup (QCP::MarginSides sides, QCPMarginGroup *group)
 
virtual QSize  minimumOuterSizeHint () const
 
virtual QSize  maximumOuterSizeHint () const
 
- Public Functions inherited from QCPLayerable
  QCPLayerable (QCustomPlot *plot, QString targetLayer=QString(), QCPLayerable *parentLayerable=nullptr)
 
bool  visible () const
 
QCustomPlotparentPlot () const
 
 
QCPLayerlayer () const
 
bool  antialiased () const
 
void  setVisible (bool on)
 
Q_SLOT bool  setLayer (QCPLayer *layer)
 
bool  setLayer (const QString &layerName)
 
void  setAntialiased (bool enabled)
 
bool  realVisibility () const
 

Additional Inherited Members

- Signals inherited from QCPLayerable
void  layerChanged (QCPLayer *newLayer)
 
- Protected Functions inherited from QCPLayout
void  sizeConstraintsChanged () const
 
 
 
QVector< int >  getSectionSizes (QVector< int > maxSizes, QVector< int > minSizes, QVector< double > stretchFactors, int totalSize) const
 
- Protected Functions inherited from QCPLayoutElement
virtual int  calculateAutoMargin (QCP::MarginSide side)
 
virtual void  layoutChanged ()
 
virtual void  applyDefaultAntialiasingHint (QCPPainter *painter) const
 
virtual void  draw (QCPPainter *painter)
 
virtual void  parentPlotInitialized (QCustomPlot *parentPlot)
 
- Protected Functions inherited from QCPLayerable
 
virtual QRect  clipRect () const
 
virtual void  selectEvent (QMouseEvent *event, bool additive, const QVariant &details, bool *selectionStateChanged)
 
virtual void  deselectEvent (bool *selectionStateChanged)
 
virtual void  mousePressEvent (QMouseEvent *event, const QVariant &details)
 
virtual void  mouseMoveEvent (QMouseEvent *event, const QPointF &startPos)
 
virtual void  mouseReleaseEvent (QMouseEvent *event, const QPointF &startPos)
 
virtual void  mouseDoubleClickEvent (QMouseEvent *event, const QVariant &details)
 
virtual void  wheelEvent (QWheelEvent *event)
 
void  initializeParentPlot (QCustomPlot *parentPlot)
 
 
bool  moveToLayer (QCPLayer *layer, bool prepend)
 
void  applyAntialiasingHint (QCPPainter *painter, bool localAntialiased, QCP::AntialiasedElement overrideElement) const
 
- Protected Static Functions inherited from QCPLayout
static QSize  getFinalMinimumOuterSize (const QCPLayoutElement *el)
 
static QSize  getFinalMaximumOuterSize (const QCPLayoutElement *el)
 

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

§ 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::QCPLayoutInset ( )
explicit

Creates an instance of QCPLayoutInset and sets default values.

Member Function Documentation

§ insetPlacement()

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

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

§ insetAlignment()

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.

§ insetRect()

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.

§ setInsetPlacement()

void QCPLayoutInset::setInsetPlacement ( int  index,
)

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

See also
InsetPlacement

§ setInsetAlignment()

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.

§ setInsetRect()

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.

§ updateLayout()

void QCPLayoutInset::updateLayout ( )
virtual

Subclasses reimplement this method to update the position and sizes of the child elements/cells via calling their QCPLayoutElement::setOuterRect. The default implementation does nothing.

The geometry used as a reference is the inner rect of this layout. Child elements should stay within that rect.

getSectionSizes may help with the reimplementation of this function.

See also
update

Reimplemented from QCPLayout.

§ elementCount()

int QCPLayoutInset::elementCount ( ) const
virtual

Returns the number of elements/cells in the layout.

See also
elements, elementAt

Implements QCPLayout.

§ elementAt()

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

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

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

See also
elements, elementCount, takeAt

Implements QCPLayout.

§ takeAt()

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 nullptr.

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.

§ take()

bool QCPLayoutInset::take ( QCPLayoutElementelement )
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.

§ simplify()

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.

§ selectTest()

double QCPLayoutInset::selectTest ( const QPointF &  pos,
bool  onlySelectable,
QVariant *  details = nullptr 
) const
virtual

The inset layout is sensitive to events only at areas where its (visible) 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.

§ addElement() [1/2]

void QCPLayoutInset::addElement ( QCPLayoutElementelement,
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)

§ addElement() [2/2]

void QCPLayoutInset::addElement ( QCPLayoutElementelement,
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)

The documentation for this class was generated from the following files:
  • src/layout.h
  • src/layout.cpp

AltStyle によって変換されたページ (->オリジナル) /