QStackedLayout Class
Die Klasse QStackedLayout bietet einen Stapel von Widgets, von denen jeweils nur ein Widget sichtbar ist. Mehr...
Kopfzeile: | #include <QStackedLayout> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Widgets) target_link_libraries(mytarget PRIVATE Qt6::Widgets) |
qmake: | QT += widgets |
Vererbungen: | QLayout |
Öffentliche Typen
enum | StackingMode { StackOne, StackAll } |
Eigenschaften
- count : const int
- currentIndex : int
- stackingMode : StackingMode
Öffentliche Funktionen
QStackedLayout() | |
QStackedLayout(QLayout *parentLayout) | |
QStackedLayout(QWidget *parent) | |
virtual | ~QStackedLayout() |
int | addWidget(QWidget *widget) |
int | currentIndex() const |
QWidget * | currentWidget() const |
int | insertWidget(int index, QWidget *widget) |
void | setStackingMode(QStackedLayout::StackingMode stackingMode) |
QStackedLayout::StackingMode | stackingMode() const |
QWidget * | widget(int index) const |
Reimplementierte öffentliche Funktionen
virtual void | addItem(QLayoutItem *item) override |
virtual int | count() const override |
virtual bool | hasHeightForWidth() const override |
virtual int | heightForWidth(int width) const override |
virtual QLayoutItem * | itemAt(int index) const override |
virtual QSize | minimumSize() const override |
virtual void | setGeometry(const QRect &rect) override |
virtual QSize | sizeHint() const override |
virtual QLayoutItem * | takeAt(int index) override |
Öffentliche Slots
void | setCurrentIndex(int index) |
void | setCurrentWidget(QWidget *widget) |
Signale
void | currentChanged(int index) |
void | widgetRemoved(int index) |
Detaillierte Beschreibung
QStackedLayout kann verwendet werden, um eine Benutzeroberfläche ähnlich der von QTabWidget bereitgestellten zu erstellen. Es gibt auch eine bequeme QStackedWidget Klasse, die auf QStackedLayout aufbaut.
Ein QStackedLayout kann mit einer Reihe von untergeordneten Widgets ("Seiten") bestückt werden. Zum Beispiel:
QWidget *firstPageWidget = new QWidget; QWidget *secondPageWidget = new QWidget; QWidget *thirdPageWidget = new QWidget; QStackedLayout *stackedLayout = new QStackedLayout; stackedLayout->addWidget(firstPageWidget); stackedLayout->addWidget(secondPageWidget); stackedLayout->addWidget(thirdPageWidget); QVBoxLayout *mainLayout = new QVBoxLayout; mainLayout->addLayout(stackedLayout); setLayout(mainLayout);
QStackedLayout bietet keine Möglichkeit für den Benutzer, die Seite zu wechseln. Dies geschieht typischerweise über eine QComboBox oder eine QListWidget, die die Titel der Seiten des QStackedLayouts 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, stackedLayout, &QStackedLayout::setCurrentIndex);
Beim Auffüllen eines Layouts werden die Widgets zu 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 das Widget am angegebenen Index aus dem Layout. Die Anzahl der Widgets, die im Layout 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 Layout ändert oder ein Widget aus dem Layout entfernt wird, werden die Signale currentChanged() und widgetRemoved() ausgegeben.
Siehe auch QStackedWidget und QTabWidget.
Dokumentation der Mitgliedstypen
enum QStackedLayout::StackingMode
Diese Aufzählung gibt an, wie das Layout seine untergeordneten Widgets hinsichtlich ihrer Sichtbarkeit behandelt.
Konstante | Wert | Beschreibung |
---|---|---|
QStackedLayout::StackOne | 0 | Nur das aktuelle Widget ist sichtbar. Dies ist die Voreinstellung. |
QStackedLayout::StackAll | 1 | Alle Widgets sind sichtbar. Das aktuelle Widget wird lediglich angehoben. |
Dokumentation der Eigenschaft
[read-only]
count : const int
Diese Eigenschaft enthält die Anzahl der im Layout enthaltenen Widgets
Zugriffsfunktionen:
virtual int | count() const override |
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.
Zugriffsfunktionen:
int | currentIndex() const |
void | setCurrentIndex(int index) |
Benachrichtigungssignal:
void | currentChanged(int index) |
Siehe auch currentWidget() und indexOf().
stackingMode : StackingMode
bestimmt, wie die Sichtbarkeit von untergeordneten Widgets gehandhabt wird.
Der Standardwert ist StackOne. Wenn Sie die Eigenschaft auf StackAll setzen, können Sie das Layout für Overlay-Widgets verwenden, die zusätzlich über anderen Widgets zeichnen, z. B. grafische Editoren.
Zugriffsfunktionen:
QStackedLayout::StackingMode | stackingMode() const |
void | setStackingMode(QStackedLayout::StackingMode stackingMode) |
Dokumentation der Mitgliedsfunktionen
QStackedLayout::QStackedLayout()
Konstruiert ein QStackedLayout ohne Elternteil.
Dieses QStackedLayout muss später auf einem Widget installiert werden, um wirksam zu werden.
Siehe auch addWidget() und insertWidget().
[explicit]
QStackedLayout::QStackedLayout(QLayout *parentLayout)
Konstruiert ein neues QStackedLayout und fügt es in das angegebene parentLayout ein.
[explicit]
QStackedLayout::QStackedLayout(QWidget *parent)
Konstruiert ein neues QStackedLayout mit dem angegebenen parent.
Dieses Layout installiert sich auf dem Widget parent und verwaltet die Geometrie seiner Kinder.
[virtual noexcept]
QStackedLayout::~QStackedLayout()
Zerstört dieses QStackedLayout. Beachten Sie, dass die Widgets des Layouts nicht zerstört werden.
[override virtual]
void QStackedLayout::addItem(QLayoutItem *item)
Reimplements: QLayout::addItem(QLayoutItem *item).
int QStackedLayout::addWidget(QWidget *widget)
Fügt das angegebene widget an das Ende dieses Layouts an und gibt die Indexposition des widget zurück.
Wenn QStackedLayout leer ist, bevor diese Funktion aufgerufen wird, wird das angegebene widget zum aktuellen Widget.
Siehe auch insertWidget(), removeWidget(), und setCurrentWidget().
[signal]
void QStackedLayout::currentChanged(int index)
Dieses Signal wird ausgesendet, wenn sich das aktuelle Widget im Layout ändert. Die index gibt den Index des neuen aktuellen Widgets an, oder -1, wenn es kein neues gibt (z.B. wenn es keine Widgets im QStackedLayout gibt).
Hinweis: Benachrichtigungssignal für die Eigenschaft currentIndex.
Siehe auch currentWidget() und setCurrentWidget().
QWidget *QStackedLayout::currentWidget() const
Gibt das aktuelle Widget zurück, oder nullptr
, wenn es keine Widgets in diesem Layout gibt.
Siehe auch currentIndex() und setCurrentWidget().
[override virtual]
bool QStackedLayout::hasHeightForWidth() const
Reimplements: QLayoutItem::hasHeightForWidth() const.
[override virtual]
int QStackedLayout::heightForWidth(int width) const
Reimplements: QLayoutItem::heightForWidth(int) const.
int QStackedLayout::insertWidget(int index, QWidget *widget)
Fügt das angegebene widget an der angegebenen index in dieses QStackedLayout ein. Wenn index außerhalb des Bereichs liegt, wird das Widget angehängt (in diesem Fall wird der aktuelle Index von widget zurückgegeben).
Wenn QStackedLayout leer ist, bevor diese Funktion aufgerufen wird, 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().
[override virtual]
QLayoutItem *QStackedLayout::itemAt(int index) const
Reimplements: QLayout::itemAt(int index) const.
[override virtual]
QSize QStackedLayout::minimumSize() const
Reimplements: QLayout::minimumSize() const.
[slot]
void QStackedLayout::setCurrentWidget(QWidget *widget)
Setzt das aktuelle Widget auf das angegebene widget. Das neue aktuelle Widget muss bereits in diesem gestapelten Layout enthalten sein.
Siehe auch setCurrentIndex() und currentWidget().
[override virtual]
void QStackedLayout::setGeometry(const QRect &rect)
Reimplements: QLayout::setGeometry(const QRect &r).
[override virtual]
QSize QStackedLayout::sizeHint() const
Reimplements: QLayoutItem::sizeHint() const.
[override virtual]
QLayoutItem *QStackedLayout::takeAt(int index)
Reimplements: QLayout::takeAt(int index).
QWidget *QStackedLayout::widget(int index) const
Liefert das Widget an der angegebenen index, oder nullptr
, wenn es an der angegebenen Position kein Widget gibt.
Siehe auch currentWidget() und indexOf().
[signal]
void QStackedLayout::widgetRemoved(int index)
Dieses Signal wird ausgegeben, wenn ein Widget aus dem Layout 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.