QStackedWidget Class
Die Klasse QStackedWidget bietet einen Stapel von Widgets, von denen jeweils nur ein Widget sichtbar ist. Mehr...
Kopfzeile: | #include <QStackedWidget> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Widgets) target_link_libraries(mytarget PRIVATE Qt6::Widgets) |
qmake: | QT += widgets |
Vererbt: | QFrame |
Eigenschaften
- count : const 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) |
void | widgetRemoved(int index) |
Reimplementierte geschützte Funktionen
virtual bool | event(QEvent *e) override |
Detaillierte Beschreibung
QStackedWidget kann verwendet werden, um eine Benutzeroberfläche ähnlich der von QTabWidget bereitgestellten zu erstellen. Es ist ein komfortables Layout-Widget, das auf der Klasse QStackedLayout aufbaut.
Wie QStackedLayout kann QStackedWidget mit einer Reihe von untergeordneten Widgets ("Seiten") aufgebaut und bestückt 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 keine Möglichkeit für den Benutzer, die Seite zu wechseln. Dies geschieht typischerweise durch ein QComboBox oder ein QListWidget, das die Titel der Seiten des QStackedWidget speichert. Ein 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);
Wenn ein gestapeltes Widget aufgefüllt wird, 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 angefügt oder mit der Funktion insertWidget() an einem bestimmten Index eingefügt werden. Die Funktion removeWidget() entfernt ein Widget aus dem Stacked Widget. Die Anzahl der Widgets, die in dem gestapelten Widget enthalten sind, kann mit der Funktion count() ermittelt werden.
Die Funktion widget() gibt das Widget an einer bestimmten Indexposition zurück. Der Index des Widgets, das auf dem Bildschirm angezeigt wird, wird mit 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() und widgetRemoved() ausgegeben.
Siehe auch QStackedLayout und QTabWidget.
Dokumentation der Eigenschaft
[read-only]
count : const int
Diese Eigenschaft enthält die Anzahl der Widgets, die in diesem gestapelten Widget enthalten sind
Standardmäßig enthält diese Eigenschaft einen Wert von 0.
Zugriffsfunktionen:
int | count() const |
Siehe auch currentIndex() und widget().
currentIndex : int
Diese Eigenschaft enthält die Indexposition des sichtbaren Widgets
Der aktuelle Index ist -1, wenn es kein aktuelles Widget gibt.
Standardmäßig enthält diese Eigenschaft den Wert -1, da der Stack anfangs leer ist.
Zugriffsfunktionen:
int | currentIndex() const |
void | setCurrentIndex(int index) |
Benachrichtigungssignal:
void | currentChanged(int index) |
Siehe auch currentWidget() und indexOf().
Dokumentation der Mitgliedsfunktionen
[explicit]
QStackedWidget::QStackedWidget(QWidget *parent = nullptr)
Konstruiert ein QStackedWidget mit dem angegebenen parent.
Siehe auch addWidget() und insertWidget().
[virtual noexcept]
QStackedWidget::~QStackedWidget()
Zerstört dieses gestapelte Widget und gibt alle zugewiesenen Ressourcen frei.
int QStackedWidget::addWidget(QWidget *widget)
Hängt die angegebene widget an die QStackedWidget an und gibt die Indexposition zurück. Der Besitz von widget wird an QStackedWidget weitergegeben.
Wenn QStackedWidget leer ist, bevor diese Funktion aufgerufen wird, wird widget das aktuelle Widget.
Siehe auch insertWidget(), removeWidget(), und setCurrentWidget().
[signal]
void QStackedWidget::currentChanged(int index)
Dieses Signal wird ausgesendet, wenn sich das aktuelle Widget ändert.
Der Parameter enthält die index des neuen aktuellen Widgets, oder -1, wenn es kein neues gibt (z.B. wenn es keine Widgets in QStackedWidget gibt).
Hinweis: Benachrichtigungssignal für die Eigenschaft currentIndex.
Siehe auch currentWidget() und setCurrentWidget().
QWidget *QStackedWidget::currentWidget() const
Gibt das aktuelle Widget zurück, oder nullptr
, wenn es keine untergeordneten Widgets gibt.
Siehe auch currentIndex() und setCurrentWidget().
[override virtual protected]
bool QStackedWidget::event(QEvent *e)
Reimplements: QFrame::event(QEvent *e).
int QStackedWidget::indexOf(const QWidget *widget) const
Gibt den Index der angegebenen widget zurück, oder -1, wenn die angegebene widget kein Kind der QStackedWidget ist.
Siehe auch currentIndex() und widget().
int QStackedWidget::insertWidget(int index, QWidget *widget)
Fügt das angegebene widget an der angegebenen index in QStackedWidget ein. Der Besitz von widget wird an QStackedWidget weitergegeben. Wenn index außerhalb des Bereichs liegt, wird widget angefügt (in diesem Fall wird der aktuelle Index von widget zurückgegeben).
Wenn QStackedWidget leer war, bevor diese Funktion aufgerufen wurde, wird das angegebene widget zum aktuellen Widget.
Das Einfügen eines neuen Widgets mit einem Index, der kleiner oder gleich dem aktuellen Index ist, erhöht den aktuellen Index, behält aber das aktuelle Widget bei.
Siehe auch addWidget(), removeWidget(), und setCurrentWidget().
void QStackedWidget::removeWidget(QWidget *widget)
Entfernt widget aus QStackedWidget. Das heißt, widget wird nicht gelöscht, sondern lediglich aus dem gestapelten Layout entfernt, wodurch es ausgeblendet wird.
Hinweis: Übergeordnetes Objekt und übergeordnetes Widget von widget bleibt QStackedWidget. Wenn die Anwendung das entfernte widget wiederverwenden möchte, wird empfohlen, es erneut zu überordnen.
Siehe auch addWidget(), insertWidget(), und currentWidget().
[slot]
void QStackedWidget::setCurrentWidget(QWidget *widget)
Setzt das aktuelle Widget auf das angegebene widget. 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
, wenn es kein solches Widget gibt.
Siehe auch currentWidget() und indexOf().
[signal]
void QStackedWidget::widgetRemoved(int index)
Dieses Signal wird ausgesendet, wenn ein Widget entfernt wird. Als Parameter wird index des Widgets übergeben.
Siehe auch removeWidget().
© 2025 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.