QLayoutItem Class

Home | All Classes | Main Classes | Annotated | Grouped Classes | Functions |

# QLayoutItem Class Reference

The QLayoutItem class provides an abstract item that a QLayout manipulates. More...

`#include <qlayout.h>`

Inherited by QLayout, QSpacerItem and QWidgetItem.

List of all member functions.

## Public Members

- QLayoutItem ( int alignment = 0 )
- virtual ~QLayoutItem ()
- virtual QSize sizeHint () const = 0
- virtual QSize minimumSize () const = 0
- virtual QSize maximumSize () const = 0
- virtual QSizePolicy::ExpandData expanding () const = 0
- virtual void setGeometry ( const QRect & r ) = 0
- virtual QRect geometry () const = 0
- virtual bool isEmpty () const = 0
- virtual bool hasHeightForWidth () const
- virtual int heightForWidth ( int w ) const
- virtual void invalidate ()
- virtual QWidget * widget ()
- virtual QLayoutIterator iterator ()
- virtual QLayout * layout ()
- virtual QSpacerItem * spacerItem ()
- int alignment () const
- virtual void setAlignment ( int a )

## Detailed Description

The QLayoutItem class provides an abstract item that a QLayout manipulates.

This is used by custom layouts.

See also QLayout, Widget Appearance and Style and Layout Management.

## Member Function Documentation

### QLayoutItem::QLayoutItem ( int alignment = 0 )

Constructs a layout item with an alignment that is a bitwise OR of the Qt::AlignmentFlags. Not all subclasses support alignment.

### QLayoutItem::~QLayoutItem ()`[virtual]`

Destroys the QLayoutItem.

### int QLayoutItem::alignment () const

Returns the alignment of this item.

### QSizePolicy::ExpandData QLayoutItem::expanding () const`[pure virtual]`

Implemented in subclasses to return whether this item "wants" to expand.

Reimplemented in QLayout, QSpacerItem and QWidgetItem.

### QRect QLayoutItem::geometry () const`[pure virtual]`

Returns the rectangle covered by this layout item.

Example: customlayout/border.cpp.

### bool QLayoutItem::hasHeightForWidth () const`[virtual]`

Returns TRUE if this layout's preferred height depends on its width; otherwise returns FALSE. The default implementation returns FALSE.

Reimplement this function in layout managers that support height for width.

See also heightForWidth() and QWidget::heightForWidth().

Examples: customlayout/border.cpp and customlayout/flow.cpp.

Reimplemented in QGridLayout and QBoxLayout.

### int QLayoutItem::heightForWidth ( int w ) const`[virtual]`

Returns the preferred height for this layout item, given the width w.

The default implementation returns -1, indicating that the preferred height is independent of the width of the item. Using the function hasHeightForWidth() will typically be much faster than calling this function and testing for -1.

Reimplement this function in layout managers that support height for width. A typical implementation will look like this:

        int MyLayout::heightForWidth( int w ) const
        {
            if ( cache_dirty || cached_width != w ) {
                // not all C++ compilers support "mutable"
                MyLayout *that = (MyLayout*)this;
                int h = calculateHeightForWidth( w );
                that->cached_hfw = h;
                return h;
            }
            return cached_hfw;
        }

Caching is strongly recommended; without it layout will take exponential time.

See also hasHeightForWidth().

Example: customlayout/flow.cpp.

Reimplemented in QGridLayout and QBoxLayout.

### void QLayoutItem::invalidate ()`[virtual]`

Invalidates any cached information in this layout item.

Reimplemented in QLayout.

### bool QLayoutItem::isEmpty () const`[pure virtual]`

Implemented in subclasses to return whether this item is empty, i.e. whether it contains any widgets.

Reimplemented in QLayout, QSpacerItem and QWidgetItem.

### QLayoutIterator QLayoutItem::iterator ()`[virtual]`

Returns an iterator over this item's QLayoutItem children. The default implementation returns an empty iterator.

Reimplement this function in subclasses that can have children.

Reimplemented in QLayout.

### QLayout * QLayoutItem::layout ()`[virtual]`

If this item is a QLayout, return it as a QLayout; otherwise return 0. This function provides type-safe casting.

### QSize QLayoutItem::maximumSize () const`[pure virtual]`

Implemented in subclasses to return the maximum size of this item.

Reimplemented in QLayout, QSpacerItem and QWidgetItem.

### QSize QLayoutItem::minimumSize () const`[pure virtual]`

Implemented in subclasses to return the minimum size of this item.

Examples: customlayout/border.cpp, customlayout/card.cpp and customlayout/flow.cpp.

Reimplemented in QLayout, QSpacerItem and QWidgetItem.

### void QLayoutItem::setAlignment ( int a )`[virtual]`

Sets the alignment of this item to a, which is a bitwise OR of the Qt::AlignmentFlags. Not all subclasses support alignment.

### void QLayoutItem::setGeometry ( const QRect & r )`[pure virtual]`

Implemented in subclasses to set this item's geometry to r.

Examples: customlayout/border.cpp, customlayout/card.cpp and customlayout/flow.cpp.

Reimplemented in QLayout, QSpacerItem and QWidgetItem.

### QSize QLayoutItem::sizeHint () const`[pure virtual]`

Implemented in subclasses to return the preferred size of this item.

Examples: customlayout/border.cpp, customlayout/card.cpp and customlayout/flow.cpp.

Reimplemented in QSpacerItem, QWidgetItem, QGridLayout and QBoxLayout.

### QSpacerItem * QLayoutItem::spacerItem ()`[virtual]`

If this item is a QSpacerItem, return it as a QSpacerItem; otherwise return 0. This function provides type-safe casting.

### QWidget * QLayoutItem::widget ()`[virtual]`

If this item is a QWidgetItem, the managed widget is returned. The default implementation returns 0.

Reimplemented in QWidgetItem.

This file is part of the Qt toolkit. Copyright © 1995-2002 Trolltech. All Rights Reserved.