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
- count : int
- currentIndex : int
Ö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.