Auf dieser Seite

QStackedWidget Class

Die Klasse „QStackedWidget“ stellt einen Stapel von Widgets bereit, bei dem jeweils nur ein Widget sichtbar ist. Mehr...

Überschrift: #include <QStackedWidget>
CMake: find_package(Qt6 REQUIRED COMPONENTS Widgets)
target_link_libraries(mytarget PRIVATE Qt6::Widgets)
qmake: QT += widgets
Erbt von: QFrame

Eigenschaften

Öffentliche Funktionen

QStackedWidget(QWidget *parent = nullptr)
virtual ~QStackedWidget()
int addWidget(QWidget *widget)
int count() const
int currentIndex() const
QWidget *currentWidget() const
int indexOf(const QWidget *widget) const
int insertWidget(int index, QWidget *widget)
void removeWidget(QWidget *widget)
QWidget *widget(int index) const

Öffentliche Slots

void setCurrentIndex(int index)
void setCurrentWidget(QWidget *widget)

Signale

void currentChanged(int index)
(since 6.9) void widgetAdded(int index)
void widgetRemoved(int index)

Neu implementierte geschützte Funktionen

virtual bool event(QEvent *e) override

Ausführliche Beschreibung

Mit `QStackedWidget` lässt sich eine Benutzeroberfläche erstellen, die der von ` QTabWidget` ähnelt. Es handelt sich um ein praktisches Layout-Widget, das auf der Klasse ` QStackedLayout ` aufbaut.

Wie „ QStackedLayout “ kann auch „QStackedWidget“ erstellt und mit einer Reihe von untergeordneten Widgets („Seiten“) gefüllt werden:

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 bietet dem Benutzer keine integrierte Möglichkeit, zwischen den Seiten zu wechseln. Dies geschieht in der Regel über ein ` QComboBox ` oder ein ` QListWidget `, das die Titel der Seiten des QStackedWidgets speichert. Zum Beispiel:

QComboBox *pageComboBox = new QComboBox;
pageComboBox->addItem(tr("Page 1"));
pageComboBox->addItem(tr("Page 2"));
pageComboBox->addItem(tr("Page 3"));
connect(pageComboBox, &QComboBox::activated,
        stackedWidget, &QStackedWidget::setCurrentIndex);

Beim Befüllen eines gestapelten Widgets werden die Widgets einer internen Liste hinzugefügt. Die Funktion ` indexOf()` gibt den Index eines Widgets in dieser Liste zurück. Die Widgets können entweder mit der Funktion „ addWidget()“ an das Ende der Liste angehängt oder mit der Funktion „ insertWidget()“ an einer bestimmten Indexposition eingefügt werden. Die Funktion „ removeWidget()“ entfernt ein Widget aus dem gestapelten Widget. Die Anzahl der im gestapelten Widget enthaltenen Widgets kann mit der Funktion „ count()“ ermittelt werden.

Die Funktion „ widget()“ gibt das Widget an einer bestimmten Indexposition zurück. Der Index des auf dem Bildschirm angezeigten Widgets wird durch „ currentIndex()“ angegeben und kann mit „ setCurrentIndex()“ geändert werden. In ähnlicher Weise kann das aktuell angezeigte Widget mit der Funktion „ currentWidget()“ abgerufen und mit der Funktion „ setCurrentWidget()“ geändert werden.

Immer wenn sich das aktuelle Widget im gestapelten Widget ändert oder ein Widget aus dem gestapelten Widget entfernt wird, werden die Signale „ currentChanged()“ bzw. „ widgetRemoved()“ ausgelöst.

Siehe auch „ QStackedLayout “ und „ QTabWidget “.

Dokumentation zu den Eigenschaften

[read-only] count : int

Diese Eigenschaft gibt die Anzahl der Widgets an, die dieses gestapelte Widget enthält

Standardmäßig enthält diese Eigenschaft den Wert 0.

Zugriffsfunktionen:

int count() const

Siehe auch „ currentIndex()“ und „ widget()“.

currentIndex : int

Diese Eigenschaft enthält die Indexposition des sichtbaren Widgets

Der aktuelle Index beträgt -1, wenn derzeit kein Widget vorhanden ist.

Standardmäßig enthält diese Eigenschaft den Wert -1, da der Stapel anfangs leer ist.

Zugriffsfunktionen:

int currentIndex() const
void setCurrentIndex(int index)

Notifier-Signal:

void currentChanged(int index)

Siehe auch „ currentWidget()“ und „ indexOf()“.

Dokumentation zu den Mitgliedsfunktionen

[explicit] QStackedWidget::QStackedWidget(QWidget *parent = nullptr)

Erstellt ein QStackedWidget mit dem angegebenen parent.

Siehe auch ` addWidget()` und ` insertWidget()`.

[virtual noexcept] QStackedWidget::~QStackedWidget()

Löscht dieses gestapelte Widget und gibt alle zugewiesenen Ressourcen frei.

int QStackedWidget::addWidget(QWidget *widget)

Fügt das angegebene „ widget “ an das „ QStackedWidget “ an und gibt die Indexposition zurück. Die Eigentumsrechte an „ widget “ werden an das „ QStackedWidget “ übertragen.

Ist die ` QStackedWidget ` vor dem Aufruf dieser Funktion leer, wird ` widget ` zum aktuellen Widget.

Siehe auch insertWidget(), removeWidget() und setCurrentWidget().

[signal] void QStackedWidget::currentChanged(int index)

Dieses Signal wird immer dann ausgelöst, wenn sich das aktuelle Widget ändert.

Der Parameter enthält die „ index “ des neuen aktuellen Widgets oder -1, wenn kein neues vorhanden ist (beispielsweise, wenn sich keine Widgets in der „ QStackedWidget “ befinden).

Hinweis: Notifier -Signal für die Eigenschaft „ currentIndex “.

Siehe auch currentWidget() und setCurrentWidget().

QWidget *QStackedWidget::currentWidget() const

Gibt das aktuelle Widget zurück oder „ nullptr “, wenn keine untergeordneten Widgets vorhanden sind.

Siehe auch „ currentIndex()“ und „ setCurrentWidget()“.

[override virtual protected] bool QStackedWidget::event(QEvent *e)

Implementiert: ` QFrame::event(QEvent *e)`.

int QStackedWidget::indexOf(const QWidget *widget) const

Gibt den Index des angegebenen „ widget “ zurück oder -1, wenn das angegebene „ widget “ kein untergeordnetes Element des „ QStackedWidget “ ist.

Siehe auch ` currentIndex()` und ` widget()`.

int QStackedWidget::insertWidget(int index, QWidget *widget)

Fügt das angegebene „ widget “ an der angegebenen Position „ index “ in das „ QStackedWidget “ ein. Die Eigentumsrechte an „ widget “ werden an „ QStackedWidget “ übertragen. Liegt „ index “ außerhalb des zulässigen Bereichs, wird „ widget “ angehängt (in diesem Fall wird der tatsächliche Index des „ widget “ zurückgegeben).

War das ` QStackedWidget ` vor dem Aufruf dieser Funktion leer, wird das angegebene ` widget ` zum aktuellen Widget.

Wird ein neues Widget an einem Index eingefügt, der kleiner oder gleich dem aktuellen Index ist, wird der aktuelle Index erhöht, das aktuelle Widget bleibt jedoch erhalten.

Siehe auch addWidget(), removeWidget() und setCurrentWidget().

void QStackedWidget::removeWidget(QWidget *widget)

Entfernt „ widget “ aus dem „ QStackedWidget “. Das heißt, „ widget “ wird nicht gelöscht, sondern lediglich aus dem gestapelten Layout entfernt, wodurch es ausgeblendet wird.

Hinweis: Dasübergeordnete Objekt und das übergeordnete Widget von ` widget ` bleiben weiterhin die ` QStackedWidget`. Wenn die Anwendung das entfernte ` widget` wiederverwenden möchte, wird empfohlen, ihm erneut ein übergeordnetes Objekt zuzuweisen.

Siehe auch „ addWidget()“, „ insertWidget()“ und „ currentWidget()“.

[slot] void QStackedWidget::setCurrentWidget(QWidget *widget)

Legt das angegebene „ widget “ als aktuelles Widget fest. Das neue aktuelle Widget muss bereits in diesem gestapelten Widget enthalten sein.

Siehe auch ` currentWidget()` und ` setCurrentIndex()`.

QWidget *QStackedWidget::widget(int index) const

Gibt das Widget unter der angegebenen Adresse „ index “ zurück oder „ nullptr “, falls kein solches Widget vorhanden ist.

Siehe auch currentWidget() und indexOf().

[signal, since 6.9] void QStackedWidget::widgetAdded(int index)

Dieses Signal wird immer dann ausgelöst, wenn ein Widget hinzugefügt oder eingefügt wird. Als Parameter wird die ` index ` des Widgets übergeben.

Diese Funktion wurde in Qt 6.9 eingeführt.

Siehe auch „ addWidget()“ und „ insertWidget()“.

[signal] void QStackedWidget::widgetRemoved(int index)

Dieses Signal wird immer dann ausgelöst, wenn ein Widget entfernt wird. Die ` index ` des Widgets wird als Parameter übergeben.

Siehe auch ` removeWidget()`.

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.