QStackedLayout Class
La classe QStackedLayout fournit une pile de widgets où un seul widget est visible à la fois. Plus d'informations...
| En-tête : | #include <QStackedLayout> |
| CMake : | find_package(Qt6 REQUIRED COMPONENTS Widgets)target_link_libraries(mytarget PRIVATE Qt6::Widgets) |
| qmake : | QT += widgets |
| Héritages : | QLayout |
Types publics
| enum | StackingMode { StackOne, StackAll } |
Propriétés
- count : int
- currentIndex : int
- stackingMode : StackingMode
Fonctions publiques
| QStackedLayout() | |
| QStackedLayout(QLayout *parentLayout) | |
| QStackedLayout(QWidget *parent) | |
| virtual | ~QStackedLayout() |
| int | addWidget(QWidget *widget) |
| virtual int | count() const override |
| 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 |
Fonctions publiques réimplémentées
| virtual void | addItem(QLayoutItem *item) 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 |
Emplacements publics
| void | setCurrentIndex(int index) |
| void | setCurrentWidget(QWidget *widget) |
Signaux
| void | currentChanged(int index) |
(since 6.9) void | widgetAdded(int index) |
| void | widgetRemoved(int index) |
Description détaillée
QStackedLayout peut être utilisé pour créer une interface utilisateur similaire à celle fournie par QTabWidget. Il existe également une classe de commodité QStackedWidget construite au-dessus de QStackedLayout.
Un QStackedLayout peut être peuplé d'un certain nombre de widgets enfants ("pages"). Par exemple, QStackedLayout
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 ne fournit aucun moyen intrinsèque permettant à l'utilisateur de changer de page. Cela se fait généralement par l'intermédiaire d'un site QComboBox ou d'un site QListWidget qui stocke les titres des pages du QStackedLayout. Par exemple :
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);
Lors du remplissage d'une disposition, les widgets sont ajoutés à une liste interne. La fonction indexOf() renvoie l'index d'un widget dans cette liste. Les widgets peuvent être ajoutés à la fin de la liste à l'aide de la fonction addWidget() ou insérés à un index donné à l'aide de la fonction insertWidget(). La fonction removeWidget() supprime de la présentation le widget situé à l'index donné. Le nombre de widgets contenus dans la disposition peut être obtenu à l'aide de la fonction count().
La fonction widget() renvoie le widget à une position d'index donnée. L'index du widget affiché à l'écran est donné par la fonction currentIndex() et peut être modifié à l'aide de la fonction setCurrentIndex(). De la même manière, le widget actuellement affiché peut être récupéré à l'aide de la fonction currentWidget() et modifié à l'aide de la fonction setCurrentWidget().
Les signaux currentChanged() et widgetRemoved() sont émis chaque fois que le widget courant de la présentation change ou qu'un widget est supprimé de la présentation.
Voir également QStackedWidget et QTabWidget.
Documentation sur les types de membres
enum QStackedLayout::StackingMode
Cette énumération spécifie comment la mise en page gère les widgets enfants en ce qui concerne leur visibilité.
| Constante | Valeur | Description |
|---|---|---|
QStackedLayout::StackOne | 0 | Seul le widget actuel est visible. C'est la valeur par défaut. |
QStackedLayout::StackAll | 1 | Tous les widgets sont visibles. Le widget actuel est simplement affiché. |
Documentation sur les propriétés
[read-only] count : int
Cette propriété contient le nombre de widgets contenus dans la mise en page.
Fonctions d'accès :
| virtual int | count() const override |
Voir également currentIndex() et widget().
currentIndex : int
Cette propriété contient la position de l'index du widget visible
L'indice actuel est -1 s'il n'y a pas de widget actuel.
Fonctions d'accès :
| int | currentIndex() const |
| void | setCurrentIndex(int index) |
Signal Notifier :
| void | currentChanged(int index) |
Voir aussi currentWidget() et indexOf().
stackingMode : StackingMode
détermine la manière dont la visibilité des widgets enfants est gérée.
La valeur par défaut est StackOne. La définition de la propriété à StackAll vous permet d'utiliser la mise en page pour les widgets de superposition qui font du dessin supplémentaire au-dessus d'autres widgets, par exemple, les éditeurs graphiques.
Fonctions d'accès :
| QStackedLayout::StackingMode | stackingMode() const |
| void | setStackingMode(QStackedLayout::StackingMode stackingMode) |
Documentation des fonctions membres
QStackedLayout::QStackedLayout()
Construit un QStackedLayout sans parent.
Ce QStackedLayout doit être installé sur un widget par la suite pour devenir effectif.
Voir aussi addWidget() et insertWidget().
[explicit] QStackedLayout::QStackedLayout(QLayout *parentLayout)
Construit un nouveau QStackedLayout et l'insère dans le site parentLayout.
[explicit] QStackedLayout::QStackedLayout(QWidget *parent)
Construit un nouveau QStackedLayout avec l'adresse parent.
Cette disposition s'installera sur le widget parent et gérera la géométrie de ses enfants.
[virtual noexcept] QStackedLayout::~QStackedLayout()
Détruit cette page QStackedLayout. Notez que les widgets de la disposition ne sont pas détruits.
[override virtual] void QStackedLayout::addItem(QLayoutItem *item)
Réimplémente : QLayout::addItem(QLayoutItem *item).
int QStackedLayout::addWidget(QWidget *widget)
Ajoute le widget donné à la fin de cette disposition et renvoie la position d'index du widget.
Si le site QStackedLayout est vide avant l'appel de cette fonction, le site widget devient le widget courant.
Voir aussi insertWidget(), removeWidget() et setCurrentWidget().
[signal] void QStackedLayout::currentChanged(int index)
Ce signal est émis chaque fois que le widget courant de la disposition change. L'adresse index spécifie l'index du nouveau widget courant, ou -1 s'il n'y en a pas (par exemple, s'il n'y a pas de widget dans la propriété QStackedLayout).
Note : Signal de notification pour la propriété currentIndex.
Voir également currentWidget() et setCurrentWidget().
QWidget *QStackedLayout::currentWidget() const
Renvoie le widget actuel ou nullptr s'il n'y a pas de widget dans cette disposition.
Voir aussi currentIndex() et setCurrentWidget().
[override virtual] bool QStackedLayout::hasHeightForWidth() const
Réimplémente : QLayoutItem::hasHeightForWidth() const.
[override virtual] int QStackedLayout::heightForWidth(int width) const
Réimplémente : QLayoutItem::heightForWidth(int) const.
int QStackedLayout::insertWidget(int index, QWidget *widget)
Insère l'adresse widget donnée à l'adresse index donnée dans cette adresse QStackedLayout. Si index est hors de portée, le widget est ajouté (dans ce cas, c'est l'indice réel de widget qui est renvoyé).
Si l'adresse QStackedLayout est vide avant l'appel de cette fonction, l'adresse widget devient le widget actuel.
L'insertion d'un nouveau widget à un index inférieur ou égal à l'index courant incrémentera l'index courant, mais conservera le widget courant.
Voir aussi addWidget(), removeWidget() et setCurrentWidget().
[override virtual] QLayoutItem *QStackedLayout::itemAt(int index) const
Réimplémente : QLayout::itemAt(int index) const.
[override virtual] QSize QStackedLayout::minimumSize() const
Réimplémente : QLayout::minimumSize() const.
[slot] void QStackedLayout::setCurrentWidget(QWidget *widget)
Définit le widget actuel comme étant le widget spécifié widget. Le nouveau widget courant doit déjà être contenu dans cette disposition empilée.
Voir aussi setCurrentIndex() et currentWidget().
[override virtual] void QStackedLayout::setGeometry(const QRect &rect)
Réimplémente : QLayout::setGeometry(const QRect &r).
[override virtual] QSize QStackedLayout::sizeHint() const
Réimplémente : QLayoutItem::sizeHint() const.
[override virtual] QLayoutItem *QStackedLayout::takeAt(int index)
Réimplémente : QLayout::takeAt(int index).
QWidget *QStackedLayout::widget(int index) const
Renvoie le widget à la position index, ou nullptr s'il n'y a pas de widget à la position donnée.
Voir aussi currentWidget() et indexOf().
[signal, since 6.9] void QStackedLayout::widgetAdded(int index)
Ce signal est émis lorsqu'un widget est ajouté ou inséré. L'adresse index du widget est passée en paramètre.
Cette fonction a été introduite dans Qt 6.9.
Voir aussi addWidget() et insertWidget().
[signal] void QStackedLayout::widgetRemoved(int index)
Ce signal est émis lorsqu'un widget est supprimé de la présentation. L'adresse index du widget est passée en paramètre.
Voir également 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.