|  | Home · Overviews · Examples |

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

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

Inherits `QFrame`.

## Detailed Description

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

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

Like `QStackedLayout`, `QStackedWidget` can be constructed and populated with a number of child widgets ("pages"):

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

            QStackedWidget *stackedWidget = new QStackedWidget;
            stackedWidget->addWidget(firstPageWidget);
            stackedWidget->addWidget(secondPageWidget);
            stackedWidget->addWidget(thirdPageWidget);

            QVBoxLayout *layout = new QVBoxLayout;
            layout->addWidget(stackedWidget);
            setLayout(layout);

`QStackedWidget` 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 `QStackedWidget`'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)),
                    stackedWidget, SLOT(setCurrentIndex(int)));

When populating a stacked widget, 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 stacked widget. The number of widgets contained in the stacked widget, 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 stacked widget changes or a widget is removed from the stacked widget, the `currentChanged` and `widgetRemoved` signals are emitted respectively.

See also `QStackedLayout`, `QTabWidget`, and Config Dialog Example.