QCPLayoutGrid Class Reference

A layout that arranges child elements in a grid. More...

Inheritance diagram for QCPLayoutGrid:

## Public Member Functions

| QCPLayoutGrid ()
int | rowCount () const
int | columnCount () const
QList< double > | columnStretchFactors () const
QList< double > | rowStretchFactors () const
int | columnSpacing () const
int | rowSpacing () const
void | setColumnStretchFactor (int column, double factor)
void | setColumnStretchFactors (const QList< double > &factors)
void | setRowStretchFactor (int row, double factor)
void | setRowStretchFactors (const QList< double > &factors)
void | setColumnSpacing (int pixels)
void | setRowSpacing (int pixels)
virtual void | updateLayout ()
virtual int | elementCount () const
virtual QCPLayoutElement * | elementAt (int index) const
virtual QCPLayoutElement * | takeAt (int index)
virtual bool | take (QCPLayoutElement *element)
virtual QList< QCPLayoutElement * > | elements (bool recursive) const
virtual void | simplify ()
virtual QSize | minimumSizeHint () const
virtual QSize | maximumSizeHint () const
QCPLayoutElement * | element (int row, int column) const
bool | addElement (int row, int column, QCPLayoutElement *element)
bool | hasElement (int row, int column)
void | expandTo (int newRowCount, int newColumnCount)
void | insertRow (int newIndex)
void | insertColumn (int newIndex)
Public Member Functions inherited from QCPLayout
| QCPLayout ()
virtual void | update ()
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 double | selectTest (const QPointF &pos, bool onlySelectable, QVariant *details=0) 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 Member Functions

void | getMinimumRowColSizes (QVector< int > *minColWidths, QVector< int > *minRowHeights) const
void | getMaximumRowColSizes (QVector< int > *maxColWidths, QVector< int > *maxRowHeights) const
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

## Protected Attributes

QList< QList< QCPLayoutElement * > > | mElements
QList< double > | mColumnStretchFactors
QList< double > | mRowStretchFactors
int | mColumnSpacing
int | mRowSpacing
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

## Detailed Description

A layout that arranges child elements in a grid.

Elements are laid out in a grid with configurable stretch factors (setColumnStretchFactor, setRowStretchFactor) and spacing (setColumnSpacing, setRowSpacing).

Elements can be added to cells via addElement. The grid is expanded if the specified row or column doesn't exist yet. Whether a cell contains a valid layout element can be checked with hasElement, that element can be retrieved with element. If rows and columns that only have empty cells shall be removed, call simplify. Removal of elements is either done by just adding the element to a different layout or by using the QCPLayout interface take or remove.

Row and column insertion can be performed with insertRow and insertColumn.

## Constructor & Destructor Documentation

QCPLayoutGrid::QCPLayoutGrid | ( |  | ) |

explicit

Creates an instance of QCPLayoutGrid and sets default values.

## Member Function Documentation

bool QCPLayoutGrid::addElement | ( | int | row,
|  | int | column,
|  | QCPLayoutElement * | element
| ) |  |

Adds the element to cell with row and column. If element is already in a layout, it is first removed from there. If row or column don't exist yet, the layout is expanded accordingly.

Returns true if the element was added successfully, i.e. if the cell at row and column didn't already have an element.

See also
  element, hasElement, take, remove

int QCPLayoutGrid::columnCount | ( |  | ) | const

Returns the number of columns in the layout.

See also
  rowCount

QCPLayoutElement * QCPLayoutGrid::element | ( | int | row,
|  | int | column
| ) |  | const

Returns the element in the cell in row and column.

Returns 0 if either the row/column is invalid or if the cell is empty. In those cases, a qDebug message is printed. To check whether a cell exists and isn't empty, use hasElement.

See also
  addElement, hasElement

QCPLayoutElement * QCPLayoutGrid::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 QCPLayoutGrid::elementCount | ( |  | ) | const

virtual

Returns the number of elements/cells in the layout.

See also
  elements, elementAt

Implements QCPLayout.

QList< QCPLayoutElement * > QCPLayoutGrid::elements | ( | bool | recursive | ) | const

virtual

Returns a list of all child elements in this layout element. If recursive is true, all sub-child elements are included in the list, too.

Note that there may be entries with value 0 in the returned list. (For example, QCPLayoutGrid may have empty cells which yield 0 at the respective index.)

Reimplemented from QCPLayout.

void QCPLayoutGrid::expandTo | ( | int | newRowCount,
|  | int | newColumnCount
| ) |  |

Expands the layout to have newRowCount rows and newColumnCount columns. So the last valid row index will be newRowCount-1, the last valid column index will be newColumnCount-1.

If the current column/row count is already larger or equal to newColumnCount/newRowCount, this function does nothing in that dimension.

Newly created cells are empty, new rows and columns have the stretch factor 1.

Note that upon a call to addElement, the layout is expanded automatically to contain the specified row and column, using this function.

See also
  simplify

bool QCPLayoutGrid::hasElement | ( | int | row,
|  | int | column
| ) |  |

Returns whether the cell at row and column exists and contains a valid element, i.e. isn't empty.

See also
  element

void QCPLayoutGrid::insertColumn | ( | int | newIndex | ) |

Inserts a new column with empty cells at the column index newIndex. Valid values for newIndex range from 0 (inserts a row at the left) to rowCount (appends a row at the right).

See also
  insertRow

void QCPLayoutGrid::insertRow | ( | int | newIndex | ) |

Inserts a new row with empty cells at the row index newIndex. Valid values for newIndex range from 0 (inserts a row at the top) to rowCount (appends a row at the bottom).

See also
  insertColumn

QSize QCPLayoutGrid::maximumSizeHint | ( |  | ) | const

virtual

Returns the maximum size this layout element (the inner rect) may be expanded to.

if a maximum size (setMaximumSize) was not set manually, parent layouts consult this function to determine the maximum allowed size of this layout element. (A manual maximum size is considered set if it is smaller than Qt's QWIDGETSIZE_MAX.)

Reimplemented from QCPLayoutElement.

QSize QCPLayoutGrid::minimumSizeHint | ( |  | ) | const

virtual

Returns the minimum size this layout element (the inner rect) may be compressed to.

if a minimum size (setMinimumSize) was not set manually, parent layouts consult this function to determine the minimum allowed size of this layout element. (A manual minimum size is considered set if it is non-zero.)

Reimplemented from QCPLayoutElement.

int QCPLayoutGrid::rowCount | ( |  | ) | const

Returns the number of rows in the layout.

See also
  columnCount

void QCPLayoutGrid::setColumnSpacing | ( | int | pixels | ) |

Sets the gap that is left blank between columns to pixels.

See also
  setRowSpacing

void QCPLayoutGrid::setColumnStretchFactor | ( | int | column,
|  | double | factor
| ) |  |

Sets the stretch factor of column.

Stretch factors control the relative sizes of rows and columns. Cells will not be resized beyond their minimum and maximum widths/heights (QCPLayoutElement::setMinimumSize, QCPLayoutElement::setMaximumSize), regardless of the stretch factor.

The default stretch factor of newly created rows/columns is 1.

See also
  setColumnStretchFactors, setRowStretchFactor

void QCPLayoutGrid::setColumnStretchFactors | ( | const QList< double > & | factors | ) |

Sets the stretch factors of all columns. factors must have the size columnCount.

Stretch factors control the relative sizes of rows and columns. Cells will not be resized beyond their minimum and maximum widths/heights (QCPLayoutElement::setMinimumSize, QCPLayoutElement::setMaximumSize), regardless of the stretch factor.

The default stretch factor of newly created rows/columns is 1.

See also
  setColumnStretchFactor, setRowStretchFactors

void QCPLayoutGrid::setRowSpacing | ( | int | pixels | ) |

Sets the gap that is left blank between rows to pixels.

See also
  setColumnSpacing

void QCPLayoutGrid::setRowStretchFactor | ( | int | row,
|  | double | factor
| ) |  |

Sets the stretch factor of row.

Stretch factors control the relative sizes of rows and columns. Cells will not be resized beyond their minimum and maximum widths/heights (QCPLayoutElement::setMinimumSize, QCPLayoutElement::setMaximumSize), regardless of the stretch factor.

The default stretch factor of newly created rows/columns is 1.

See also
  setColumnStretchFactors, setRowStretchFactor

void QCPLayoutGrid::setRowStretchFactors | ( | const QList< double > & | factors | ) |

Sets the stretch factors of all rows. factors must have the size rowCount.

Stretch factors control the relative sizes of rows and columns. Cells will not be resized beyond their minimum and maximum widths/heights (QCPLayoutElement::setMinimumSize, QCPLayoutElement::setMaximumSize), regardless of the stretch factor.

The default stretch factor of newly created rows/columns is 1.

See also
  setRowStretchFactor, setColumnStretchFactors

void QCPLayoutGrid::simplify | ( |  | ) |

virtual

Simplifies the layout by collapsing rows and columns which only contain empty cells.

Reimplemented from QCPLayout.

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