Qwt User's Guide  6.1.2
 All Classes Functions Variables Typedefs Enumerations Enumerator Pages
Public Member Functions | Protected Member Functions | List of all members
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:
Inheritance graph
[legend]

Public Member Functions

 QwtDynGridLayout (QWidget *, int margin=0, int space=-1)
 
 QwtDynGridLayout (int space=-1)
 
virtual ~QwtDynGridLayout ()
 Destructor.
 
virtual void invalidate ()
 Invalidate all internal caches.
 
void setMaxColumns (uint maxCols)
 
uint maxColumns () const
 Return the upper limit for the number of columns. More...
 
uint numRows () const
 
uint numColumns () const
 
virtual void addItem (QLayoutItem *)
 Add an item to the next free position. More...
 
virtual QLayoutItem * itemAt (int index) const
 
virtual QLayoutItem * takeAt (int index)
 
virtual int count () const
 
void setExpandingDirections (Qt::Orientations)
 
virtual Qt::Orientations expandingDirections () const
 Returns whether this layout can make use of more space than sizeHint(). More...
 
QList< QRect > layoutItems (const QRect &, uint numCols) const
 
virtual int maxItemWidth () const
 
virtual void setGeometry (const QRect &rect)
 
virtual bool hasHeightForWidth () const
 
virtual int heightForWidth (int) const
 
virtual QSize sizeHint () const
 
virtual bool isEmpty () const
 
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 numCols, QVector< int > &rowHeight, QVector< int > &colWidth) const
 
void stretchGrid (const QRect &rect, uint numCols, 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()).

Constructor & Destructor Documentation

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

Member Function Documentation

void QwtDynGridLayout::addItem ( QLayoutItem *  item)
virtual

Add an item to the next free position.

Parameters
itemLayout item
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()
int QwtDynGridLayout::count ( ) const
virtual
Returns
Number of items in the layout
Qt::Orientations QwtDynGridLayout::expandingDirections ( ) const
virtual

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()
bool QwtDynGridLayout::hasHeightForWidth ( ) const
virtual
Returns
true: QwtDynGridLayout implements heightForWidth().
See Also
heightForWidth()
int QwtDynGridLayout::heightForWidth ( int  width) const
virtual
Returns
The preferred height for this layout, given a width.
See Also
hasHeightForWidth()
bool QwtDynGridLayout::isEmpty ( ) const
virtual
Returns
true if this layout is empty.
QLayoutItem * QwtDynGridLayout::itemAt ( int  index) const
virtual

Find the item at a specific index

Parameters
indexIndex
Returns
Item at a specific index
See Also
takeAt()
uint QwtDynGridLayout::itemCount ( ) const
Returns
number of layout items
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.
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
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()
int QwtDynGridLayout::maxItemWidth ( ) const
virtual
Returns
the maximum width of all layout items
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
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
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()
void QwtDynGridLayout::setGeometry ( const QRect &  rect)
virtual

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

Parameters
rectLayout geometry
void QwtDynGridLayout::setMaxColumns ( uint  maxColumns)

Limit the number of columns.

Parameters
maxColumnsupper limit, 0 means unlimited
See Also
maxColumns()
QSize QwtDynGridLayout::sizeHint ( ) const
virtual

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()
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()
QLayoutItem * QwtDynGridLayout::takeAt ( int  index)
virtual

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