QStackedWidget Class
The QStackedWidget class provides a stack of widgets where only one widget is visible at a time. More...
| Header: | #include <QStackedWidget> |
| qmake: | QT += widgets |
| Inherits: | QFrame |
Properties
- count : const int
- currentIndex : int
Public Functions
| int | count() const |
| int | currentIndex() const |
Public Slots
| void | setCurrentIndex(int index) |
Signals
| void | currentChanged(int) |
Detailed Description
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, QOverload<int>::of(&QComboBox::activated),
stackedWidget, &QStackedWidget::setCurrentIndex);
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 a widget 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 and QTabWidget.
Property Documentation
count : const int
This property holds the number of widgets contained by this stacked widget
By default, this property contains a value of 0.
Access functions:
| int | count() const |
See also currentIndex() and widget().
currentIndex : int
This property holds the index position of the widget that is visible
The current index is -1 if there is no current widget.
By default, this property contains a value of -1 because the stack is initially empty.
Access functions:
| int | currentIndex() const |
| void | setCurrentIndex(int index) |
Notifier signal:
| void | currentChanged(int) |
See also currentWidget() and indexOf().