|  | Home · Overviews · Examples

# QStackedLayout Class Reference
[com.trolltech.qt.gui module]

The `QStackedLayout` class provides a stack of widgets where only one widget is visible at a time. More...

Inherits `QLayout`.

## Detailed Description

The `QStackedLayout` class provides a stack of widgets where only one widget is visible at a time.

`QStackedLayout` can be used to create a user interface similar to the one provided by `QTabWidget`. There is also a convenience `QStackedWidget` class built on top of `QStackedLayout`.

A `QStackedLayout` can be populated with a number of child widgets ("pages"). For example:

            QWidget *firstPageWidget = new QWidget;
            QWidget *secondPageWidget = new QWidget;
            QWidget *thirdPageWidget = new QWidget;

            QStackedLayout *stackedLayout = new QStackedLayout;
            stackedLayout->addWidget(firstPageWidget);
            stackedLayout->addWidget(secondPageWidget);
            stackedLayout->addWidget(thirdPageWidget);

            QVBoxLayout *mainLayout = new QVBoxLayout;
            mainLayout->addLayout(stackedLayout);
            setLayout(mainLayout);

`QStackedLayout` provides no intrinsic means for the user to switch page. This is typically done through a `QComboBox` or a `QListWidget` that stores the titles of the `QStackedLayout`'s pages. For example:

            QComboBox *pageComboBox = new QComboBox;
            pageComboBox->addItem(tr("Page 1"));
            pageComboBox->addItem(tr("Page 2"));
            pageComboBox->addItem(tr("Page 3"));
            connect(pageComboBox, SIGNAL(activated(int)),
                    stackedLayout, SLOT(setCurrentIndex(int)));

When populating a layout, the widgets are added to an internal list. The `indexOf` function returns the index of a widget in that list. The widgets can either be added to the end of the list using the `addWidget` function, or inserted at a given index using the `insertWidget` function. The `removeWidget` function removes the widget at the given index from the layout. The number of widgets contained in the layout, can be obtained using the `count` function.

The `widget` function returns the widget at a given index position. The index of the widget that is shown on screen is given by `currentIndex` and can be changed using `setCurrentIndex`. In a similar manner, the currently shown widget can be retrieved using the `currentWidget` function, and altered using the `setCurrentWidget` function.

Whenever the current widget in the layout changes or a widget is removed from the layout, the `currentChanged` and `widgetRemoved` signals are emitted respectively.

See also `QStackedWidget` and `QTabWidget`.