Qwt User's Guide  6.2.0
QwtDynGridLayout Class Reference

The QwtDynGridLayout class lays out widgets in a grid, adjusting the number of columns and rows to the current size. More...

#include <qwt_dyngrid_layout.h>

Inheritance diagram for QwtDynGridLayout:

Public Member Functions

 QwtDynGridLayout (QWidget *, int margin=0, int spacing=-1)
 
 QwtDynGridLayout (int spacing=-1)
 
virtual ~QwtDynGridLayout ()
 Destructor.
 
virtual void invalidate () override
 Invalidate all internal caches.
 
void setMaxColumns (uint maxColumns)
 
uint maxColumns () const
 Return the upper limit for the number of columns. More...
 
uint numRows () const
 
uint numColumns () const
 
virtual void addItem (QLayoutItem *) override
 Add an item to the next free position. More...
 
virtual QLayoutItem * itemAt (int index) const override
 
virtual QLayoutItem * takeAt (int index) override
 
virtual int count () const override
 
void setExpandingDirections (Qt::Orientations)
 
virtual Qt::Orientations expandingDirections () const override
 Returns whether this layout can make use of more space than sizeHint(). More...
 
QList< QRect > layoutItems (const QRect &, uint numColumns) const
 
virtual int maxItemWidth () const
 
virtual void setGeometry (const QRect &) override
 
virtual bool hasHeightForWidth () const override
 
virtual int heightForWidth (int) const override
 
virtual QSize sizeHint () const override
 
virtual bool isEmpty () const override
 
uint itemCount () const
 
virtual uint columnsForWidth (int width) const
 Calculate the number of columns for a given width. More...
 

Protected Member Functions

void layoutGrid (uint numColumns, QVector< int > &rowHeight, QVector< int > &colWidth) const
 
void stretchGrid (const QRect &rect, uint numColumns, QVector< int > &rowHeight, QVector< int > &colWidth) const
 

Detailed Description

The QwtDynGridLayout class lays out widgets in a grid, adjusting the number of columns and rows to the current size.

QwtDynGridLayout takes the space it gets, divides it up into rows and columns, and puts each of the widgets it manages into the correct cell(s). It lays out as many number of columns as possible (limited by maxColumns()).

Definition at line 27 of file qwt_dyngrid_layout.h.

Constructor & Destructor Documentation

◆ QwtDynGridLayout() [1/2]

QwtDynGridLayout::QwtDynGridLayout ( QWidget *  parent,
int  margin = 0,
int  spacing = -1 
)
explicit
Parameters
parentParent widget
marginMargin
spacingSpacing

Definition at line 58 of file qwt_dyngrid_layout.cpp.

◆ QwtDynGridLayout() [2/2]

QwtDynGridLayout::QwtDynGridLayout ( int  spacing = -1)
explicit
Parameters
spacingSpacing

Definition at line 71 of file qwt_dyngrid_layout.cpp.

Member Function Documentation

◆ addItem()

void QwtDynGridLayout::addItem ( QLayoutItem *  item)
overridevirtual

Add an item to the next free position.

Parameters
itemLayout item

Definition at line 128 of file qwt_dyngrid_layout.cpp.

◆ columnsForWidth()

uint QwtDynGridLayout::columnsForWidth ( int  width) const
virtual

Calculate the number of columns for a given width.

The calculation tries to use as many columns as possible ( limited by maxColumns() )

Parameters
widthAvailable width for all columns
Returns
Number of columns for a given width
See also
maxColumns(), setMaxColumns()

Definition at line 256 of file qwt_dyngrid_layout.cpp.

◆ count()

int QwtDynGridLayout::count ( ) const
overridevirtual
Returns
Number of items in the layout

Definition at line 182 of file qwt_dyngrid_layout.cpp.

◆ expandingDirections()

Qt::Orientations QwtDynGridLayout::expandingDirections ( ) const
overridevirtual

Returns whether this layout can make use of more space than sizeHint().

A value of Qt::Vertical or Qt::Horizontal means that it wants to grow in only one dimension, while Qt::Vertical | Qt::Horizontal means that it wants to grow in both dimensions.

Returns
Orientations, where the layout expands
See also
setExpandingDirections()

Definition at line 211 of file qwt_dyngrid_layout.cpp.

◆ hasHeightForWidth()

bool QwtDynGridLayout::hasHeightForWidth ( ) const
overridevirtual
Returns
true: QwtDynGridLayout implements heightForWidth().
See also
heightForWidth()

Definition at line 446 of file qwt_dyngrid_layout.cpp.

◆ heightForWidth()

int QwtDynGridLayout::heightForWidth ( int  width) const
overridevirtual
Returns
The preferred height for this layout, given a width.
See also
hasHeightForWidth()

Definition at line 455 of file qwt_dyngrid_layout.cpp.

◆ isEmpty()

bool QwtDynGridLayout::isEmpty ( ) const
overridevirtual
Returns
true if this layout is empty.

Definition at line 137 of file qwt_dyngrid_layout.cpp.

◆ itemAt()

QLayoutItem * QwtDynGridLayout::itemAt ( int  index) const
overridevirtual

Find the item at a specific index

Parameters
indexIndex
Returns
Item at a specific index
See also
takeAt()

Definition at line 157 of file qwt_dyngrid_layout.cpp.

◆ itemCount()

uint QwtDynGridLayout::itemCount ( ) const
Returns
number of layout items

Definition at line 145 of file qwt_dyngrid_layout.cpp.

◆ layoutGrid()

void QwtDynGridLayout::layoutGrid ( uint  numColumns,
QVector< int > &  rowHeight,
QVector< int > &  colWidth 
) const
protected

Calculate the dimensions for the columns and rows for a grid of numColumns columns.

Parameters
numColumnsNumber of columns.
rowHeightArray where to fill in the calculated row heights.
colWidthArray where to fill in the calculated column widths.

Definition at line 419 of file qwt_dyngrid_layout.cpp.

◆ layoutItems()

QList< QRect > QwtDynGridLayout::layoutItems ( const QRect &  rect,
uint  numColumns 
) const

Calculate the geometries of the layout items for a layout with numColumns columns and a given rectangle.

Parameters
rectRect where to place the items
numColumnsNumber of columns
Returns
item geometries

Definition at line 344 of file qwt_dyngrid_layout.cpp.

◆ maxColumns()

uint QwtDynGridLayout::maxColumns ( ) const

Return the upper limit for the number of columns.

0 means unlimited, what is the default.

Returns
Upper limit for the number of columns
See also
setMaxColumns()

Definition at line 119 of file qwt_dyngrid_layout.cpp.

◆ maxItemWidth()

int QwtDynGridLayout::maxItemWidth ( ) const
virtual
Returns
the maximum width of all layout items

Definition at line 316 of file qwt_dyngrid_layout.cpp.

◆ numColumns()

uint QwtDynGridLayout::numColumns ( ) const
Returns
Number of columns of the current layout.
See also
numRows()
Warning
The number of columns might change whenever the geometry changes

Definition at line 596 of file qwt_dyngrid_layout.cpp.

◆ numRows()

uint QwtDynGridLayout::numRows ( ) const
Returns
Number of rows of the current layout.
See also
numColumns()
Warning
The number of rows might change whenever the geometry changes

Definition at line 586 of file qwt_dyngrid_layout.cpp.

◆ setExpandingDirections()

void QwtDynGridLayout::setExpandingDirections ( Qt::Orientations  expanding)

Set whether this layout can make use of more space than sizeHint(). A value of Qt::Vertical or Qt::Horizontal means that it wants to grow in only one dimension, while Qt::Vertical | Qt::Horizontal means that it wants to grow in both dimensions. The default value is 0.

Parameters
expandingOr'd orientations
See also
expandingDirections()

Definition at line 196 of file qwt_dyngrid_layout.cpp.

◆ setGeometry()

void QwtDynGridLayout::setGeometry ( const QRect &  rect)
overridevirtual

Reorganizes columns and rows and resizes managed items within a rectangle.

Parameters
rectLayout geometry

Definition at line 222 of file qwt_dyngrid_layout.cpp.

◆ setMaxColumns()

void QwtDynGridLayout::setMaxColumns ( uint  maxColumns)

Limit the number of columns.

Parameters
maxColumnsupper limit, 0 means unlimited
See also
maxColumns()

Definition at line 106 of file qwt_dyngrid_layout.cpp.

◆ sizeHint()

QSize QwtDynGridLayout::sizeHint ( ) const
overridevirtual

Return the size hint. If maxColumns() > 0 it is the size for a grid with maxColumns() columns, otherwise it is the size for a grid with only one row.

Returns
Size hint
See also
maxColumns(), setMaxColumns()

Definition at line 550 of file qwt_dyngrid_layout.cpp.

◆ stretchGrid()

void QwtDynGridLayout::stretchGrid ( const QRect &  rect,
uint  numColumns,
QVector< int > &  rowHeight,
QVector< int > &  colWidth 
) const
protected

Stretch columns in case of expanding() & QSizePolicy::Horizontal and rows in case of expanding() & QSizePolicy::Vertical to fill the entire rect. Rows and columns are stretched with the same factor.

Parameters
rectBounding rectangle
numColumnsNumber of columns
rowHeightArray to be filled with the calculated row heights
colWidthArray to be filled with the calculated column widths
See also
setExpanding(), expanding()

Definition at line 491 of file qwt_dyngrid_layout.cpp.

◆ takeAt()

QLayoutItem * QwtDynGridLayout::takeAt ( int  index)
overridevirtual

Find the item at a specific index and remove it from the layout

Parameters
indexIndex
Returns
Layout item, removed from the layout
See also
itemAt()

Definition at line 172 of file qwt_dyngrid_layout.cpp.