QTabWidget Class
La classe QTabWidget fournit une pile de widgets à onglets. Plus d'informations...
| En-tête : | #include <QTabWidget> |
| CMake : | find_package(Qt6 REQUIRED COMPONENTS Widgets)target_link_libraries(mytarget PRIVATE Qt6::Widgets) |
| qmake : | QT += widgets |
| Héritages : | QWidget |
Types publics
| enum | TabPosition { North, South, West, East } |
| enum | TabShape { Rounded, Triangular } |
Propriétés
|
|
Fonctions publiques
| QTabWidget(QWidget *parent = nullptr) | |
| virtual | ~QTabWidget() |
| int | addTab(QWidget *page, const QString &label) |
| int | addTab(QWidget *page, const QIcon &icon, const QString &label) |
| void | clear() |
| QWidget * | cornerWidget(Qt::Corner corner = Qt::TopRightCorner) const |
| int | count() const |
| int | currentIndex() const |
| QWidget * | currentWidget() const |
| bool | documentMode() const |
| Qt::TextElideMode | elideMode() const |
| QSize | iconSize() const |
| int | indexOf(const QWidget *w) const |
| int | insertTab(int index, QWidget *page, const QString &label) |
| int | insertTab(int index, QWidget *page, const QIcon &icon, const QString &label) |
| bool | isMovable() const |
| bool | isTabEnabled(int index) const |
| bool | isTabVisible(int index) const |
| void | removeTab(int index) |
| void | setCornerWidget(QWidget *widget, Qt::Corner corner = Qt::TopRightCorner) |
| void | setDocumentMode(bool set) |
| void | setElideMode(Qt::TextElideMode mode) |
| void | setIconSize(const QSize &size) |
| void | setMovable(bool movable) |
| void | setTabBarAutoHide(bool enabled) |
| void | setTabEnabled(int index, bool enable) |
| void | setTabIcon(int index, const QIcon &icon) |
| void | setTabPosition(QTabWidget::TabPosition position) |
| void | setTabShape(QTabWidget::TabShape s) |
| void | setTabText(int index, const QString &label) |
| void | setTabToolTip(int index, const QString &tip) |
| void | setTabVisible(int index, bool visible) |
| void | setTabWhatsThis(int index, const QString &text) |
| void | setTabsClosable(bool closeable) |
| void | setUsesScrollButtons(bool useButtons) |
| QTabBar * | tabBar() const |
| bool | tabBarAutoHide() const |
| QIcon | tabIcon(int index) const |
| QTabWidget::TabPosition | tabPosition() const |
| QTabWidget::TabShape | tabShape() const |
| QString | tabText(int index) const |
| QString | tabToolTip(int index) const |
| QString | tabWhatsThis(int index) const |
| bool | tabsClosable() const |
| bool | usesScrollButtons() const |
| QWidget * | widget(int index) const |
Fonctions publiques réimplémentées
| virtual bool | hasHeightForWidth() const override |
| virtual int | heightForWidth(int width) const override |
| virtual QSize | minimumSizeHint() const override |
| virtual QSize | sizeHint() const override |
Emplacements publics
| void | setCurrentIndex(int index) |
| void | setCurrentWidget(QWidget *widget) |
Signaux
| void | currentChanged(int index) |
| void | tabBarClicked(int index) |
| void | tabBarDoubleClicked(int index) |
| void | tabCloseRequested(int index) |
Fonctions protégées
| virtual void | initStyleOption(QStyleOptionTabWidgetFrame *option) const |
| void | setTabBar(QTabBar *tb) |
| virtual void | tabInserted(int index) |
| virtual void | tabRemoved(int index) |
Fonctions protégées réimplémentées
| virtual void | changeEvent(QEvent *ev) override |
| virtual bool | event(QEvent *ev) override |
| virtual void | keyPressEvent(QKeyEvent *e) override |
| virtual void | paintEvent(QPaintEvent *event) override |
| virtual void | resizeEvent(QResizeEvent *e) override |
| virtual void | showEvent(QShowEvent *) override |
Description détaillée

Un widget d'onglet fournit une barre d'onglets (voir QTabBar) et une "zone de page" utilisée pour afficher les pages liées à chaque onglet. Par défaut, la barre d'onglets est affichée au-dessus de la zone de page, mais différentes configurations sont possibles (voir TabPosition). Chaque onglet est associé à un widget différent (appelé page). Seule la page en cours est affichée dans la zone de page ; toutes les autres pages sont masquées. L'utilisateur peut afficher une page différente en cliquant sur son onglet ou en appuyant sur son raccourci Alt+lettre s'il en a un.
La façon normale d'utiliser QTabWidget est la suivante :
- Créer un QTabWidget.
- Créez un QWidget pour chacune des pages de la boîte de dialogue de l'onglet, mais ne spécifiez pas de widgets parents pour celles-ci.
- Insérez les widgets enfants dans le widget de page, en utilisant les dispositions pour les positionner normalement.
- Appelez addTab() ou insertTab() pour placer les widgets de page dans le widget d'onglet, en donnant à chaque onglet une étiquette appropriée avec un raccourci clavier facultatif.
La position des onglets est définie par tabPosition, leur forme par tabShape.
Le signal currentChanged() est émis lorsque l'utilisateur sélectionne une page.
L'index de la page en cours est disponible sous la forme currentIndex(), le widget de la page en cours sous la forme currentWidget(). Vous pouvez récupérer un pointeur sur un widget de page avec un index donné en utilisant widget(), et vous pouvez trouver la position de l'index d'un widget avec indexOf(). Utilisez setCurrentWidget() ou setCurrentIndex() pour afficher une page particulière.
Vous pouvez modifier le texte et l'icône d'un onglet en utilisant setTabText() ou setTabIcon(). Un onglet et la page qui lui est associée peuvent être supprimés à l'aide de removeTab().
Chaque onglet est activé ou désactivé à tout moment (voir setTabEnabled()). Si un onglet est activé, le texte de l'onglet est dessiné normalement et l'utilisateur peut sélectionner cet onglet. S'il est désactivé, l'onglet est dessiné différemment et l'utilisateur ne peut pas le sélectionner. Notez que même si un onglet est désactivé, la page peut toujours être visible, par exemple si tous les onglets sont désactivés.
Les widgets d'onglets peuvent être un très bon moyen de diviser une boîte de dialogue complexe. Une autre solution consiste à utiliser un site QStackedWidget pour lequel vous fournissez un moyen de naviguer entre les pages, par exemple, un site QToolBar ou QListWidget.
La plupart des fonctionnalités de QTabWidget sont fournies par un QTabBar (en haut, fournissant les onglets) et un QStackedWidget (la majeure partie de la zone, organisant les pages individuelles).
Voir également QTabBar, QStackedWidget, QToolBox, et Tab Dialog Example.
Documentation sur les types de membres
enum QTabWidget::TabPosition
Ce type d'énumération définit l'endroit où QTabWidget dessine la ligne de tabulation :
| Constante | Valeur | Description |
|---|---|---|
QTabWidget::North | 0 | Les onglets sont dessinés au-dessus des pages. |
QTabWidget::South | 1 | Les onglets sont dessinés sous les pages. |
QTabWidget::West | 2 | Les onglets sont dessinés à gauche des pages. |
QTabWidget::East | 3 | Les onglets sont dessinés à droite des pages. |
enum QTabWidget::TabShape
Ce type d'énumération définit la forme des onglets :
| Constante | Valeur | Description |
|---|---|---|
QTabWidget::Rounded | 0 | Les onglets sont dessinés avec un aspect arrondi. Il s'agit de la forme par défaut. |
QTabWidget::Triangular | 1 | Les onglets sont dessinés avec un aspect triangulaire. |
Propriété Documentation
[read-only] count : int
Cette propriété indique le nombre d'onglets dans la barre d'onglets
Par défaut, cette propriété contient une valeur de 0.
Fonctions d'accès :
| int | count() const |
currentIndex : int
Cette propriété contient la position de l'index de la page de l'onglet courant
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 il n'y a initialement aucun onglet dans le widget.
Fonctions d'accès :
| int | currentIndex() const |
| void | setCurrentIndex(int index) |
Signal du notificateur :
| void | currentChanged(int index) |
documentMode : bool
Cette propriété indique si le widget d'onglet est rendu dans un mode adapté aux pages de documents. C'est la même chose que le mode document sur macOS.
Lorsque cette propriété est définie, le cadre du widget d'onglet n'est pas rendu. Ce mode est utile pour afficher des pages de type document où la page couvre la majeure partie de la zone du widget d'onglet.
Fonctions d'accès :
| bool | documentMode() const |
| void | setDocumentMode(bool set) |
Voir aussi elideMode, QTabBar::documentMode, QTabBar::usesScrollButtons, et QStyle::SH_TabBar_PreferNoArrows.
elideMode : Qt::TextElideMode
comment masquer du texte dans la barre d'onglets
Cette propriété contrôle la façon dont les éléments sont élidés lorsqu'il n'y a pas assez d'espace pour les afficher pour une taille de barre d'onglets donnée.
Par défaut, la valeur dépend du style.
Fonctions d'accès :
| Qt::TextElideMode | elideMode() const |
| void | setElideMode(Qt::TextElideMode mode) |
Voir aussi QTabBar::elideMode, usesScrollButtons, et QStyle::SH_TabBar_ElideMode.
iconSize : QSize
Cette propriété définit la taille des icônes de la barre d'onglets
La valeur par défaut dépend du style. Il s'agit de la taille maximale des icônes. Les icônes ne sont pas agrandies si elles sont de taille inférieure.
Fonctions d'accès :
| QSize | iconSize() const |
| void | setIconSize(const QSize &size) |
Voir aussi QTabBar::iconSize.
movable : bool
Cette propriété indique si l'utilisateur peut déplacer les onglets dans la zone de la barre d'onglets.
Par défaut, cette propriété vaut false;
Fonctions d'accès :
| bool | isMovable() const |
| void | setMovable(bool movable) |
tabBarAutoHide : bool
Si true, la barre d'onglets est automatiquement cachée lorsqu'elle contient moins de 2 onglets.
Par défaut, cette propriété est fausse.
Fonctions d'accès :
| bool | tabBarAutoHide() const |
| void | setTabBarAutoHide(bool enabled) |
Voir aussi QWidget::visible.
tabPosition : TabPosition
Cette propriété définit la position des onglets dans ce widget d'onglets
Les valeurs possibles pour cette propriété sont décrites par l'énumération TabPosition.
Par défaut, cette propriété a la valeur North.
Fonctions d'accès :
| QTabWidget::TabPosition | tabPosition() const |
| void | setTabPosition(QTabWidget::TabPosition position) |
Voir également TabPosition.
tabShape : TabShape
Cette propriété définit la forme des onglets dans ce widget d'onglets
Les valeurs possibles pour cette propriété sont QTabWidget::Rounded (par défaut) ou QTabWidget::Triangular.
Fonctions d'accès :
| QTabWidget::TabShape | tabShape() const |
| void | setTabShape(QTabWidget::TabShape s) |
Voir également TabShape.
tabsClosable : bool
Cette propriété indique si des boutons de fermeture sont automatiquement ajoutés à chaque onglet.
Fonctions d'accès :
| bool | tabsClosable() const |
| void | setTabsClosable(bool closeable) |
Voir aussi QTabBar::tabsClosable().
usesScrollButtons : bool
Cette propriété indique si une barre d'onglets doit ou non utiliser des boutons pour faire défiler les onglets lorsqu'elle en contient beaucoup.
Lorsqu'une barre d'onglets contient trop d'onglets pour sa taille, elle peut choisir d'agrandir sa taille ou d'ajouter des boutons permettant de faire défiler les onglets.
Par défaut, la valeur dépend du style.
Fonctions d'accès :
| bool | usesScrollButtons() const |
| void | setUsesScrollButtons(bool useButtons) |
Voir également elideMode, QTabBar::usesScrollButtons, et QStyle::SH_TabBar_PreferNoArrows.
Documentation sur les fonctions membres
[explicit] QTabWidget::QTabWidget(QWidget *parent = nullptr)
Construit un widget à onglets avec le parent parent.
[virtual noexcept] QTabWidget::~QTabWidget()
Détruit le widget à onglets.
int QTabWidget::addTab(QWidget *page, const QString &label)
Ajoute un onglet avec les valeurs page et label au widget tab, et renvoie l'index de l'onglet dans la barre d'onglets. La propriété de page est transmise à QTabWidget.
Si l'adresse label de l'onglet contient une esperluette, la lettre qui suit l'esperluette est utilisée comme raccourci pour l'onglet. Par exemple, si l'étiquette est "Bro&wse", Alt+W devient un raccourci qui déplacera le focus sur cet onglet.
Remarque : si vous appelez addTab() après show(), le système de mise en page essaiera de s'adapter aux changements dans la hiérarchie des widgets, ce qui peut provoquer un scintillement. Pour éviter cela, vous pouvez définir la propriété QWidget::updatesEnabled sur false avant les modifications ; n'oubliez pas de définir la propriété sur true lorsque les modifications sont terminées, afin que le widget reçoive à nouveau des événements de peinture.
Voir également insertTab().
int QTabWidget::addTab(QWidget *page, const QIcon &icon, const QString &label)
Ajoute un onglet avec les valeurs page, icon, et label au widget tab, et renvoie l'index de l'onglet dans la barre d'onglets. La propriété de page est transmise à QTabWidget.
Cette fonction est la même que addTab(), mais avec un icon supplémentaire.
Il s'agit d'une fonction surchargée.
[override virtual protected] void QTabWidget::changeEvent(QEvent *ev)
Réimplémente : QWidget::changeEvent(QEvent *event).
void QTabWidget::clear()
Supprime toutes les pages, mais ne les efface pas. Appeler cette fonction équivaut à appeler removeTab() jusqu'à ce que le widget d'onglets soit vide.
QWidget *QTabWidget::cornerWidget(Qt::Corner corner = Qt::TopRightCorner) const
Renvoie le widget affiché dans le corner du widget d'onglet ou nullptr.
Voir aussi setCornerWidget().
[signal] void QTabWidget::currentChanged(int index)
Ce signal est émis lorsque l'index de la page courante change. Le paramètre est la nouvelle position de la page index ou -1 s'il n'y en a pas (par exemple, s'il n'y a pas de widgets dans la page QTabWidget).
Note : Signal de notification pour la propriété currentIndex.
Voir également currentWidget() et currentIndex.
QWidget *QTabWidget::currentWidget() const
Renvoie un pointeur sur la page actuellement affichée par la boîte de dialogue des onglets. La boîte de dialogue des onglets fait de son mieux pour s'assurer que cette valeur n'est jamais 0 (mais si vous essayez assez fort, elle peut l'être).
Voir aussi currentIndex() et setCurrentWidget().
[override virtual protected] bool QTabWidget::event(QEvent *ev)
Réimplémente : QWidget::event(QEvent *event).
[override virtual] bool QTabWidget::hasHeightForWidth() const
Réimplémente : QWidget::hasHeightForWidth() const.
[override virtual] int QTabWidget::heightForWidth(int width) const
Réimplémente : QWidget::heightForWidth(int w) const.
int QTabWidget::indexOf(const QWidget *w) const
Renvoie la position de l'index de la page occupée par le widget w, ou -1 si le widget est introuvable.
[virtual protected] void QTabWidget::initStyleOption(QStyleOptionTabWidgetFrame *option) const
Initialiser option avec les valeurs de QTabWidget. Cette méthode est utile pour les sous-classes qui ont besoin d'un QStyleOptionTabWidgetFrame, mais qui ne veulent pas remplir toutes les informations elles-mêmes.
Voir aussi QStyleOption::initFrom() et QTabBar::initStyleOption().
int QTabWidget::insertTab(int index, QWidget *page, const QString &label)
Insère un onglet avec les adresses label et page dans le widget d'onglets à l'adresse index, et renvoie l'index de l'onglet inséré dans la barre d'onglets. La propriété de page est transmise à QTabWidget.
L'étiquette est affichée dans l'onglet et son apparence peut varier en fonction de la configuration du widget d'onglet.
Si l'adresse label de l'onglet contient une esperluette, la lettre qui suit l'esperluette est utilisée comme raccourci pour l'onglet, par exemple si l'étiquette est "Bro&wse", Alt+W devient un raccourci qui déplacera le focus sur cet onglet.
Si index est hors de portée, l'onglet est simplement ajouté. Sinon, il est inséré à la position spécifiée.
Si le site QTabWidget était vide avant l'appel de cette fonction, la nouvelle page devient la page en cours. L'insertion d'une nouvelle tabulation à un index inférieur ou égal à l'index actuel incrémentera l'index actuel, mais conservera la page actuelle.
Remarque : si vous appelez insertTab() après show(), le système de mise en page essaiera de s'adapter aux changements dans la hiérarchie de ses widgets, ce qui peut provoquer un scintillement. Pour éviter cela, vous pouvez définir la propriété QWidget::updatesEnabled sur false avant les modifications ; n'oubliez pas de définir la propriété sur true lorsque les modifications sont terminées, afin que le widget reçoive à nouveau des événements de peinture.
Voir également addTab().
int QTabWidget::insertTab(int index, QWidget *page, const QIcon &icon, const QString &label)
Insère un onglet avec les données label, page, et icon dans le widget d'onglet à l'endroit spécifié index, et renvoie l'index de l'onglet inséré dans la barre d'onglets. La propriété de page est transmise à QTabWidget.
Cette fonction est identique à insertTab(), mais elle comporte un élément supplémentaire : icon.
Il s'agit d'une fonction surchargée.
bool QTabWidget::isTabEnabled(int index) const
Renvoie true si la page à la position index est activée ; sinon, renvoie false.
Voir aussi setTabEnabled() et QWidget::isEnabled().
bool QTabWidget::isTabVisible(int index) const
Retourne vrai si la page à la position index est visible, sinon retourne faux.
Voir également setTabVisible().
[override virtual protected] void QTabWidget::keyPressEvent(QKeyEvent *e)
Réimplémente : QWidget::keyPressEvent(QKeyEvent *event).
[override virtual] QSize QTabWidget::minimumSizeHint() const
Réimplémente une fonction d'accès à la propriété : QWidget::minimumSizeHint.
Renvoie une taille minimale appropriée pour l'onglet.
[override virtual protected] void QTabWidget::paintEvent(QPaintEvent *event)
Réimplémente : QWidget::paintEvent(QPaintEvent *event).
Peint la barre d'onglets du widget tab en réponse à l'événement paint event.
void QTabWidget::removeTab(int index)
Supprime l'onglet situé à la position index de cette pile de widgets. Le widget de page lui-même n'est pas supprimé.
Voir également addTab() et insertTab().
[override virtual protected] void QTabWidget::resizeEvent(QResizeEvent *e)
Réimplémente : QWidget::resizeEvent(QResizeEvent *event).
void QTabWidget::setCornerWidget(QWidget *widget, Qt::Corner corner = Qt::TopRightCorner)
Définit l'adresse widget donnée comme étant affichée dans l'adresse corner spécifiée du widget de l'onglet. La géométrie du widget est déterminée en fonction de sizeHint() et de style().
Seul l'élément horizontal de corner sera utilisé.
Si vous passez nullptr, aucun widget n'apparaît dans le coin.
Tout widget d'angle précédemment défini est caché.
Tous les widgets définis ici seront supprimés par le widget de l'onglet lorsqu'il sera détruit, à moins que vous ne répartissiez séparément le widget après avoir défini un autre widget de coin (ou nullptr).
Remarque : les widgets d'angle sont conçus pour les onglets North et South; les autres orientations sont connues pour ne pas fonctionner correctement.
Voir également cornerWidget() et setTabPosition().
[slot] void QTabWidget::setCurrentWidget(QWidget *widget)
Fait de widget le widget actuel. L'adresse widget utilisée doit être une page de cet onglet.
Voir aussi addTab(), setCurrentIndex() et currentWidget().
[protected] void QTabWidget::setTabBar(QTabBar *tb)
Remplace l'en-tête de la boîte de dialogue QTabBar par la barre d'onglets tb. Notez que cette commande doit être appelée avant que des onglets n'aient été ajoutés, sinon le comportement n'est pas défini.
Voir aussi tabBar().
void QTabWidget::setTabEnabled(int index, bool enable)
Si enable est vrai, la page à la position index est activée ; sinon, la page à la position index est désactivée. L'onglet de la page est redessiné en conséquence.
QTabWidget utilise QWidget::setEnabled() en interne, plutôt que de conserver un indicateur séparé.
Notez que même un onglet/une page désactivé(e) peut être visible. Si la page est déjà visible, QTabWidget ne la cachera pas ; si toutes les pages sont désactivées, QTabWidget en affichera une.
Voir aussi isTabEnabled() et QWidget::setEnabled().
void QTabWidget::setTabIcon(int index, const QIcon &icon)
Définit icon pour l'onglet à la position index.
Voir aussi tabIcon().
void QTabWidget::setTabText(int index, const QString &label)
Définit un nouveau label pour la page à la position index's tab.
Si le texte fourni contient une esperluette ('&'), un raccourci est automatiquement créé. Le caractère qui suit le "&" sera utilisé comme touche de raccourci. Tout raccourci précédent sera écrasé, ou effacé si aucun raccourci n'est défini pour le texte. Voir la documentation de QShortcut pour plus de détails (pour afficher une esperluette, utiliser '&&').
Voir également tabText().
void QTabWidget::setTabToolTip(int index, const QString &tip)
Définit l'info-bulle de l'onglet pour la page à la position index à tip.
Voir aussi tabToolTip().
void QTabWidget::setTabVisible(int index, bool visible)
Si visible est vrai, la page à la position index est visible ; sinon, la page à la position index est cachée. L'onglet de la page est redessiné en conséquence.
Voir également isTabVisible().
void QTabWidget::setTabWhatsThis(int index, const QString &text)
Définit le texte d'aide "What's This" pour la page à la position index à text.
Voir aussi tabWhatsThis().
[override virtual protected] void QTabWidget::showEvent(QShowEvent *)
Réimplémente : QWidget::showEvent(QShowEvent *event).
[override virtual] QSize QTabWidget::sizeHint() const
Réimplémente une fonction d'accès à la propriété : QWidget::sizeHint.
QTabBar *QTabWidget::tabBar() const
Renvoie l'adresse actuelle QTabBar.
Voir aussi setTabBar().
[signal] void QTabWidget::tabBarClicked(int index)
Ce signal est émis lorsque l'utilisateur clique sur un onglet à l'adresse index.
index se réfère à l'onglet cliqué, ou -1 si aucun onglet ne se trouve sous le curseur.
[signal] void QTabWidget::tabBarDoubleClicked(int index)
Ce signal est émis lorsque l'utilisateur double-clique sur un onglet à l'adresse index.
index est l'index de l'onglet cliqué, ou -1 si aucun onglet ne se trouve sous le curseur.
[signal] void QTabWidget::tabCloseRequested(int index)
Ce signal est émis lorsque le bouton de fermeture d'un onglet est cliqué. L'adresse index est l'index qui doit être supprimé.
Voir aussi setTabsClosable().
QIcon QTabWidget::tabIcon(int index) const
Renvoie l'icône de l'onglet sur la page à la position index.
Voir aussi setTabIcon().
[virtual protected] void QTabWidget::tabInserted(int index)
Ce gestionnaire virtuel est appelé après l'ajout ou l'insertion d'un nouvel onglet à la position index.
Voir aussi tabRemoved().
[virtual protected] void QTabWidget::tabRemoved(int index)
Ce gestionnaire virtuel est appelé après qu'un onglet a été retiré de la position index.
Voir aussi tabInserted().
QString QTabWidget::tabText(int index) const
Renvoie le texte de l'étiquette de l'onglet de la page à la position index.
Voir également setTabText().
QString QTabWidget::tabToolTip(int index) const
Renvoie l'info-bulle de la page à la position index ou une chaîne vide si aucune info-bulle n'a été définie.
Voir aussi setTabToolTip().
QString QTabWidget::tabWhatsThis(int index) const
Renvoie le texte d'aide What's This pour la page à la position index, ou une chaîne vide si aucun texte d'aide n'a été défini.
Voir aussi setTabWhatsThis().
QWidget *QTabWidget::widget(int index) const
Renvoie la page à onglet à la position d'index index ou nullptr si index est hors de portée.
© 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.