QStackedWidget Class
La classe QStackedWidget fournit une pile de widgets où un seul widget est visible à la fois. Plus d'informations...
| En-tête : | #include <QStackedWidget> |
| CMake : | find_package(Qt6 REQUIRED COMPONENTS Widgets)target_link_libraries(mytarget PRIVATE Qt6::Widgets) |
| qmake : | QT += widgets |
| Héritages : | QFrame |
Propriétés
- count : int
- currentIndex : int
Fonctions publiques
| 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 |
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) |
Fonctions protégées réimplémentées
| virtual bool | event(QEvent *e) override |
Description détaillée
QStackedWidget peut être utilisé pour créer une interface utilisateur similaire à celle fournie par QTabWidget. Il s'agit d'un widget de mise en page de commodité construit au-dessus de la classe QStackedLayout.
Comme QStackedLayout, QStackedWidget peut être construit et peuplé d'un certain nombre de widgets enfants ("pages") :
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 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 QComboBox ou d'un QListWidget qui stocke les titres des pages du QStackedWidget. Par exemple, lors de l'alimentation d'un widget empilé, l'utilisateur peut changer de page :
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);
Lors du remplissage d'un widget empilé, 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 un widget de la pile de widgets. Le nombre de widgets contenus dans le widget empilé 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().
Chaque fois que le widget courant du widget empilé change ou qu'un widget est retiré du widget empilé, les signaux currentChanged() et widgetRemoved() sont émis respectivement.
Voir également QStackedLayout et QTabWidget.
Documentation sur les propriétés
[read-only] count : int
Cette propriété indique le nombre de widgets contenus dans ce widget empilé
Par défaut, cette propriété contient une valeur de 0.
Fonctions d'accès :
| int | count() const |
Voir aussi currentIndex() et widget().
currentIndex : int
Cette propriété contient la position de l'index du widget visible
L'index actuel est -1 s'il n'y a pas de widget actuel.
Par défaut, cette propriété contient une valeur de -1 car la pile est initialement vide.
Fonctions d'accès :
| int | currentIndex() const |
| void | setCurrentIndex(int index) |
Signal Notifier :
| void | currentChanged(int index) |
Voir également currentWidget() et indexOf().
Documentation des fonctions membres
[explicit] QStackedWidget::QStackedWidget(QWidget *parent = nullptr)
Construit un QStackedWidget avec l'adresse parent.
Voir aussi addWidget() et insertWidget().
[virtual noexcept] QStackedWidget::~QStackedWidget()
Détruit ce widget empilé et libère toutes les ressources allouées.
int QStackedWidget::addWidget(QWidget *widget)
Ajoute l'adresse widget à l'adresse QStackedWidget et renvoie la position de l'index. La propriété de widget est transmise à QStackedWidget.
Si le QStackedWidget est vide avant l'appel de cette fonction, widget devient le widget courant.
Voir aussi insertWidget(), removeWidget(), et setCurrentWidget().
[signal] void QStackedWidget::currentChanged(int index)
Ce signal est émis lorsque le widget courant change.
Le paramètre contient le index du nouveau widget courant, ou -1 s'il n'y a pas de nouveau widget (par exemple, s'il n'y a pas de widget dans le site QStackedWidget).
Note : Signal de notification pour la propriété currentIndex.
Voir également currentWidget() et setCurrentWidget().
QWidget *QStackedWidget::currentWidget() const
Renvoie le widget actuel ou nullptr s'il n'y a pas de widget enfant.
Voir aussi currentIndex() et setCurrentWidget().
[override virtual protected] bool QStackedWidget::event(QEvent *e)
Réimplémente : QFrame::event(QEvent *e).
int QStackedWidget::indexOf(const QWidget *widget) const
Renvoie l'index de l'adresse widget, ou -1 si l'adresse widget n'est pas un enfant de l'adresse QStackedWidget.
Voir aussi currentIndex() et widget().
int QStackedWidget::insertWidget(int index, QWidget *widget)
Insère l'adresse widget à l'adresse index dans l'adresse QStackedWidget. La propriété de l'adresse widget est transmise à l'adresse QStackedWidget. Si l'adresse index est hors de portée, l'adresse widget est ajoutée (dans ce cas, c'est l'indice actuel de l'adresse widget qui est renvoyé).
Si l'adresse QStackedWidget était vide avant l'appel de cette fonction, l'adresse widget devient le widget courant.
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().
void QStackedWidget::removeWidget(QWidget *widget)
Supprime widget de QStackedWidget. En d'autres termes, widget n' est pas supprimé mais simplement retiré de la disposition empilée, ce qui a pour effet de le masquer.
Remarque : l'objet parent et le widget parent de widget resteront QStackedWidget. Si l'application souhaite réutiliser l'objet widget retiré, il est recommandé de le re-parenter.
Voir également addWidget(), insertWidget() et currentWidget().
[slot] void QStackedWidget::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 ce widget empilé.
Voir aussi currentWidget() et setCurrentIndex().
QWidget *QStackedWidget::widget(int index) const
Renvoie le widget à l'adresse index, ou nullptr s'il n'existe pas de widget de ce type.
Voir aussi currentWidget() et indexOf().
[signal, since 6.9] void QStackedWidget::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 QStackedWidget::widgetRemoved(int index)
Ce signal est émis lorsqu'un widget est supprimé. L'adresse index du widget est passée en paramètre.
Voir aussi 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.