Qt logo

QLayout Class Reference


The QLayout class is the base class of geometry specifiers. More...

#include <qabstractlayout.h>

Inherits QLayoutItem and QObject.

Inherited by QBoxLayout and QGridLayout.

List of all member functions.

Public Members

Protected Members


Detailed Description

The QLayout class is the base class of geometry specifiers.

This is an abstract base class. The concrete layout managers QBoxLayout and QGridLayout inherit from this one.

Most users of Q*Layout are likely to use some of the basic functions provided by QLayout, such as setMenuBar(), which is necessary to manage a menu bar because of the special properties of menu bars, and freeze(), which allows you to freeze the widget's size and layout.

To make your own layout manager, make a subclass of QGLayoutIterator and implement the functions addItem(), sizeHint(), setGeometry() and iterator(). You should also implement minimumSize(), otherwise your layout will be resized to zero size if there is little space. To support children whose height depend on their widths, implement hasHeightForWidth() and heightForWidth(). See the custom layout page for an in-depth description and the layout overview page for an introduction.

Geometry management stops when the layout manager is deleted.


Member Type Documentation

QLayout::ResizeMode

The possible values are are:

Member Function Documentation

QLayout::QLayout ( QWidget * parent, int border=0, int space=-1, const char * name=0 )

Creates a new top-level QLayout with main widget parent. parent may not be 0.

border is the number of pixels between the edge of the widget and the managed children. space sets the value of spacing(), which gives the spacing between widgets. The default value for space is -1, which means that the value of border is used.

name is the internal object name

There can only be one top-level layout for a widget. It is returned by QWidget::layout().

QLayout::QLayout ( QLayout * parentLayout, int space=-1, const char * name=0 )

Constructs a new child QLayout, and places it inside parentLayout, using the default placement defined by addItem().

If space is -1, this QLayout inherits parentLayout's spacing(), otherwise space is used.

QLayout::QLayout ( int space=-1, const char * name=0 )

Constructs a new child QLayout, If space is -1, this QLayout inherits its parent's spacing(), otherwise space is used.

This layout has to be inserted into another layout before geometry management will work.

QLayout::~QLayout ()

Deletes all layout children. Geometry management stops when a toplevel layout is deleted.

bool QLayout::activate ()

Redoes the layout for mainWidget(). You should generally not need to call this, as it is automatically called at most appropriate times.

However, if you set up a QLayout for a visible widget without resizing that widget, you need to call this function in order to lay it out.

See also: QWidget::updateGeometry().

Examples: layout/layout.cpp popup/popup.cpp scrollview/scrollview.cpp

void QLayout::add ( QWidget * w )

Adds w to this layout in a manner specific to the layout. This function uses addItem.

Examples: customlayout/main.cpp

void QLayout::addChildLayout ( QLayout * l ) [protected]

This function is called from addLayout functions in subclasses, to add l layout as a sublayout.

void QLayout::addItem ( QLayoutItem * item ) [virtual]

Implemented in subclasses to add item. How it is added is specific to each subclass.

Note that the ownership of item is transferred to the layout, and it is the layout's responsibility to delete it.

Reimplemented in QGridLayout and QBoxLayout.

bool QLayout::autoAdd () const

Returns TRUE if this layout automatically grabs all new mainWidget()'s new children and adds them as defined by addItem(). This only has effect for top-level layouts, ie. layouts that are direct children of their mainWidget().

autoAdd() is disabled by default.

See also: setAutoAdd().

void QLayout::deleteAllItems () [protected]

Removes and deletes all items in this layout.

bool QLayout::eventFilter ( QObject * o, QEvent * e ) [virtual protected]

Performs child widget layout when the parent widget is resized. Also handles removal of widgets and child layouts.

Reimplemented from QObject.

QRect QLayout::geometry () const [virtual]

Reimplemented for internal reasons; the API is not affected.

Reimplemented from QLayoutItem.

bool QLayout::isEmpty () const [virtual]

Returns TRUE if this layout is empty. The default implementation returns FALSE.

Reimplemented from QLayoutItem.

bool QLayout::isTopLevel () const

Returns TRUE if this layout is a top level layout, i.e. not a child of another layout.

QLayout * QLayout::layout () [virtual]

Reimplemented for internal reasons; the API is not affected.

Reimplemented from QLayoutItem.

QWidget * QLayout::mainWidget ()

Returns the main widget (parent widget) of this layout, or 0 if this layout is a sub-layout which is not yet inserted.

int QLayout::margin () const

returns the width of the outside border of the layout.

See also: spacing() and setMargin().

QSize QLayout::maximumSize () const [virtual]

Returns the maximum size of this layout. This is the largest size that the layout can have, while still respecting the specifications. Does not include what's needed by margin() or menuBar().

The default implementation allows unlimited resizing.

Reimplemented from QLayoutItem.

QMenuBarQLayout::menuBar () const

Returns the menu bar set for this layout, or a null pointer if no menu bar is set.

QSize QLayout::minimumSize () const [virtual]

Returns the minimum size of this layout. This is the smallest size that the layout can have, while still respecting the specifications. Does not include what's needed by margin() or menuBar().

The default implementation allows unlimited resizing.

Reimplemented from QLayoutItem.

QLayout::ResizeMode QLayout::resizeMode() const

Returns the resize mode.

void QLayout::setAutoAdd ( bool b ) [virtual]

Sets autoAdd() if b is TRUE.

See also: autoAdd().

void QLayout::setGeometry ( const QRect & r ) [virtual]

This function is reimplemented in subclasses to perform layout.

The default implementation maintains the geometry() information. Reimplementors must call this function.

Reimplemented from QLayoutItem.

void QLayout::setMargin ( int border ) [virtual]

Sets the outside border of the layout to border.

See also: margin() and setSpacing().

void QLayout::setMenuBar ( QMenuBar * w ) [virtual]

Makes the geometry manager take account of the menu bar w. All child widgets are placed below the bottom edge of the menu bar.

A menu bar does its own geometry managing, never do addWidget() on a QMenuBar.

Examples: scrollview/scrollview.cpp

void QLayout::setResizeMode ( ResizeMode mode )

Sets the resize mode to mode.

The default mode is Minimum for top level widgets, and FreeResize for all others.

See also: QLayout::ResizeMode.

void QLayout::setSpacing ( int space ) [virtual]

Sets the internal spacing of the layout to space.

See also: spacing() and setMargin().

int QLayout::spacing () const

Returns the spacing between widgets inside the layout.

See also: margin() and setSpacing().

int QLayout::totalHeightForWidth ( int w ) const

For internal use only.

QSize QLayout::totalMaximumSize () const

For internal use only.

QSize QLayout::totalMinimumSize () const

For internal use only.

QSize QLayout::totalSizeHint () const

For internal use only.


Search the documentation, FAQ, qt-interest archive and more (uses www.troll.no):


This file is part of the Qt toolkit, copyright © 1995-99 Troll Tech, all rights reserved.


Copyright © 1999 Troll TechTrademarks
Qt version 2.0.2