QTreeWidget Class
La classe QTreeWidget propose une vue arborescente qui utilise un modèle d'arborescence prédéfini. En savoir plus...
| En-tête : | #include <QTreeWidget> |
| CMake : | find_package(Qt6 REQUIRED COMPONENTS Widgets) target_link_libraries(mytarget PRIVATE Qt6::Widgets) |
| qmake : | QT += widgets |
| Hérite de : | QTreeView |
Propriétés
- columnCount : int
(since 6.10)supportedDragActions : Qt::DropActions- topLevelItemCount : int
Fonctions publiques
| QTreeWidget(QWidget *parent = nullptr) | |
| virtual | ~QTreeWidget() |
| void | addTopLevelItem(QTreeWidgetItem *item) |
| void | addTopLevelItems(const QList<QTreeWidgetItem *> &items) |
| void | closePersistentEditor(QTreeWidgetItem *item, int column = 0) |
| int | columnCount() const |
| int | currentColumn() const |
| QTreeWidgetItem * | currentItem() const |
| void | editItem(QTreeWidgetItem *item, int column = 0) |
| QList<QTreeWidgetItem *> | findItems(const QString &text, Qt::MatchFlags flags, int column = 0) const |
| QTreeWidgetItem * | headerItem() const |
| QModelIndex | indexFromItem(const QTreeWidgetItem *item, int column = 0) const |
| int | indexOfTopLevelItem(QTreeWidgetItem *item) const |
| void | insertTopLevelItem(int index, QTreeWidgetItem *item) |
| void | insertTopLevelItems(int index, const QList<QTreeWidgetItem *> &items) |
| QTreeWidgetItem * | invisibleRootItem() const |
| bool | isPersistentEditorOpen(QTreeWidgetItem *item, int column = 0) const |
| QTreeWidgetItem * | itemAbove(const QTreeWidgetItem *item) const |
| QTreeWidgetItem * | itemAt(const QPoint &p) const |
| QTreeWidgetItem * | itemAt(int x, int y) const |
| QTreeWidgetItem * | itemBelow(const QTreeWidgetItem *item) const |
| QTreeWidgetItem * | itemFromIndex(const QModelIndex &index) const |
| QWidget * | itemWidget(QTreeWidgetItem *item, int column) const |
| void | openPersistentEditor(QTreeWidgetItem *item, int column = 0) |
| void | removeItemWidget(QTreeWidgetItem *item, int column) |
| QList<QTreeWidgetItem *> | selectedItems() const |
| void | setColumnCount(int columns) |
| void | setCurrentItem(QTreeWidgetItem *item) |
| void | setCurrentItem(QTreeWidgetItem *item, int column) |
| void | setCurrentItem(QTreeWidgetItem *item, int column, QItemSelectionModel::SelectionFlags command) |
| void | setHeaderItem(QTreeWidgetItem *item) |
| void | setHeaderLabel(const QString &label) |
| void | setHeaderLabels(const QStringList &labels) |
| void | setItemWidget(QTreeWidgetItem *item, int column, QWidget *widget) |
| void | setSupportedDragActions(Qt::DropActions actions) |
| int | sortColumn() const |
| void | sortItems(int column, Qt::SortOrder order) |
| Qt::DropActions | supportedDragActions() const |
| QTreeWidgetItem * | takeTopLevelItem(int index) |
| QTreeWidgetItem * | topLevelItem(int index) const |
| int | topLevelItemCount() const |
| QRect | visualItemRect(const QTreeWidgetItem *item) const |
Fonctions publiques réimplémentées
| virtual void | setSelectionModel(QItemSelectionModel *selectionModel) override |
Slots publics
| void | clear() |
| void | collapseItem(const QTreeWidgetItem *item) |
| void | expandItem(const QTreeWidgetItem *item) |
| void | scrollToItem(const QTreeWidgetItem *item, QAbstractItemView::ScrollHint hint = EnsureVisible) |
Signaux
| void | currentItemChanged(QTreeWidgetItem *current, QTreeWidgetItem *previous) |
| void | itemActivated(QTreeWidgetItem *item, int column) |
| void | itemChanged(QTreeWidgetItem *item, int column) |
| void | itemClicked(QTreeWidgetItem *item, int column) |
| void | itemCollapsed(QTreeWidgetItem *item) |
| void | itemDoubleClicked(QTreeWidgetItem *item, int column) |
| void | itemEntered(QTreeWidgetItem *item, int column) |
| void | itemExpanded(QTreeWidgetItem *item) |
| void | itemPressed(QTreeWidgetItem *item, int column) |
| void | itemSelectionChanged() |
Fonctions protégées
| virtual bool | dropMimeData(QTreeWidgetItem *parent, int index, const QMimeData *data, Qt::DropAction action) |
| virtual QMimeData * | mimeData(const QList<QTreeWidgetItem *> &items) const |
| virtual QStringList | mimeTypes() const |
| virtual Qt::DropActions | supportedDropActions() const |
Fonctions protégées réimplémentées
Description détaillée

La classe QTreeWidget est une classe utilitaire qui fournit un widget arborescent standard doté d’une interface classique basée sur des éléments, similaire à celle utilisée par la classe QListView dans Qt 3. Cette classe repose sur l’architecture Modèle/Vue de Qt et utilise un modèle par défaut pour contenir des éléments, chacun d’entre eux étant un objet de type QTreeWidgetItem.
Les développeurs qui n’ont pas besoin de la flexibilité du framework Modèle/Vue peuvent utiliser cette classe pour créer très facilement de simples listes hiérarchiques. Une approche plus flexible consiste à combiner un ` QTreeView ` avec un modèle d’éléments standard. Cela permet de séparer le stockage des données de leur représentation.
Dans sa forme la plus simple, un widget arborescent peut être construit de la manière suivante :
auto *treeWidget = new QTreeWidget();
treeWidget->setColumnCount(1);
for (int i = 0; i < 10; ++i)
new QTreeWidgetItem(treeWidget, { tr("item: %1").arg(i) });Avant de pouvoir ajouter des éléments au widget arborescent, le nombre de colonnes doit être défini à l’aide de la fonction ` setColumnCount()`. Cela permet à chaque élément d’avoir une ou plusieurs étiquettes ou autres décorations. Le nombre de colonnes utilisées peut être obtenu à l’aide de la fonction ` columnCount()`.
L’arborescence peut comporter un en-tête contenant une section pour chaque colonne du widget. Le moyen le plus simple de configurer les libellés de chaque section consiste à fournir une liste de chaînes de caractères à l’aide de ` setHeaderLabels()`, mais il est possible de créer un en-tête personnalisé à l’aide de ` QTreeWidgetItem ` et de l’insérer dans l’arborescence à l’aide de la fonction ` setHeaderItem()`.
Les éléments de l'arborescence peuvent être triés par colonne selon un ordre de tri prédéfini. Si le tri est activé, l'utilisateur peut trier les éléments en cliquant sur l'en-tête d'une colonne. Le tri peut être activé ou désactivé en appelant la fonction ` setSortingEnabled()`. La fonction ` isSortingEnabled()` indique si le tri est activé.
Voir également QTreeWidgetItem, QTreeWidgetItemIterator, QTreeView et Programmation Modèle/Vue.
Documentation sur les propriétés
columnCount : int
Cette propriété détermine le nombre de colonnes affichées dans le widget arborescent
Par défaut, cette propriété a la valeur 1.
Fonctions d'accès :
| int | columnCount() const |
| void | setColumnCount(int columns) |
[since 6.10] supportedDragActions : Qt::DropActions
Cette propriété contient les actions de glisser-déposer prises en charge par cette vue
Cette énumération a été introduite dans Qt 6.10.
Fonctions d'accès :
| Qt::DropActions | supportedDragActions() const |
| void | setSupportedDragActions(Qt::DropActions actions) |
Voir également Qt::DropActions et supportedDropActions().
[read-only] topLevelItemCount : int
Cette propriété contient le nombre d'éléments de niveau supérieur
Par défaut, cette propriété a pour valeur 0.
Fonctions d'accès :
| int | topLevelItemCount() const |
Voir également columnCount() et currentItem().
Documentation sur les fonctions membres
[explicit] QTreeWidget::QTreeWidget(QWidget *parent = nullptr)
Crée un widget arborescent à partir de l'parent on fournie.
[virtual noexcept] QTreeWidget::~QTreeWidget()
Supprime le widget arborescent et tous ses éléments.
void QTreeWidget::addTopLevelItem(QTreeWidgetItem *item)
Ajoute l'item e en tant qu'élément de niveau supérieur dans le widget.
Voir aussi insertTopLevelItem().
void QTreeWidget::addTopLevelItems(const QList<QTreeWidgetItem *> &items)
Ajoute la liste des éléments de type « items » en tant qu’éléments de premier niveau dans le widget.
Voir aussi insertTopLevelItems().
[slot] void QTreeWidget::clear()
Efface le widget arborescent en supprimant tous ses éléments et toutes ses sélections.
Remarque : chaque élément étant retiré du widget arborescent avant d’être supprimé, la valeur renvoyée par QTreeWidgetItem::treeWidget() ne sera pas valide lorsqu’elle est appelée depuis le destructeur d’un élément.
Voir également takeTopLevelItem(), topLevelItemCount() et columnCount().
void QTreeWidget::closePersistentEditor(QTreeWidgetItem *item, int column = 0)
Ferme l'éditeur persistant correspondant à l'item, situé à l'column indiquée.
Cette fonction n'a aucun effet si aucun éditeur persistant n'est ouvert pour cette combinaison d'élément et de colonne.
Voir également openPersistentEditor() et isPersistentEditorOpen().
[slot] void QTreeWidget::collapseItem(const QTreeWidgetItem *item)
Ferme l'item. Cela provoque le repliement de l'arborescence contenant les éléments enfants de l'élément.
Voir également expandItem(), currentItem(), itemAt() et topLevelItem().
int QTreeWidget::currentColumn() const
Renvoie la colonne actuelle dans le widget arborescent.
Voir également setCurrentItem() et columnCount().
QTreeWidgetItem *QTreeWidget::currentItem() const
Renvoie l'élément actuel dans le widget arborescent.
Voir également setCurrentItem() et currentItemChanged().
[signal] void QTreeWidget::currentItemChanged(QTreeWidgetItem *current, QTreeWidgetItem *previous)
Ce signal est émis lorsque l'élément actif change. L'élément actif est spécifié par ` current`, et cela remplace l'élément actif ` previous `.
Voir également setCurrentItem().
[override virtual protected] void QTreeWidget::dropEvent(QDropEvent *event)
Réimplémente : QAbstractItemView::dropEvent(QDropEvent *event).
[virtual protected] bool QTreeWidget::dropMimeData(QTreeWidgetItem *parent, int index, const QMimeData *data, Qt::DropAction action)
Gère l'objet ` data ` fourni par une opération de glisser-déposer qui s'est terminée avec l'action donné dans l'index de l'élément ` parent ` spécifié.
L'implémentation par défaut renvoie ` true ` si le dépôt a été géré avec succès en décodant les données MIME et en les insérant dans le modèle ; sinon, elle renvoie ` false`.
Voir également supportedDropActions() et supportedDragActions.
void QTreeWidget::editItem(QTreeWidgetItem *item, int column = 0)
Lance la modification de la page « item » à l'adresse column si celle-ci est modifiable.
[override virtual protected] bool QTreeWidget::event(QEvent *e)
Réimplémente : ` QAbstractItemView::event(QEvent *event)`.
[slot] void QTreeWidget::expandItem(const QTreeWidgetItem *item)
Développe l'élément item. Cela entraîne le développement de l'arborescence contenant les éléments enfants de cet élément.
Voir également collapseItem(), currentItem(), itemAt(), topLevelItem() et itemExpanded().
QList<QTreeWidgetItem *> QTreeWidget::findItems(const QString &text, Qt::MatchFlags flags, int column = 0) const
Renvoie une liste d'éléments correspondant à l'text, en utilisant l'flags, dans l'column.
QTreeWidgetItem *QTreeWidget::headerItem() const
Renvoie l'élément utilisé pour l'en-tête du widget arborescent.
Voir aussi setHeaderItem().
QModelIndex QTreeWidget::indexFromItem(const QTreeWidgetItem *item, int column = 0) const
Renvoie l'QModelIndex associé à l'item donné dans l'column spécifié.
Remarque : dans les versions de Qt antérieures à la version 5.7, cette fonction prenait un item non de typeconst.
Voir également itemFromIndex() et topLevelItem().
int QTreeWidget::indexOfTopLevelItem(QTreeWidgetItem *item) const
Renvoie l'index de l'item de niveau supérieur spécifié, ou -1 si l'élément est introuvable.
Voir également sortItems() et topLevelItemCount().
void QTreeWidget::insertTopLevelItem(int index, QTreeWidgetItem *item)
Insère l’ item, disponible à l’adresse index, au niveau supérieur de la vue.
Si l'élément a déjà été inséré ailleurs, il ne sera pas inséré.
Voir aussi addTopLevelItem() et columnCount().
void QTreeWidget::insertTopLevelItems(int index, const QList<QTreeWidgetItem *> &items)
Insère la liste des articles « items » disponible à l'adresse index au niveau supérieur de la vue.
Les éléments déjà insérés ailleurs ne seront pas insérés.
Voir aussi addTopLevelItems().
QTreeWidgetItem *QTreeWidget::invisibleRootItem() const
Renvoie l'élément racine invisible du widget arborescent.
L'élément racine invisible permet d’accéder aux éléments de niveau supérieur du widget arborescent via l’API QTreeWidgetItem, ce qui permet d’écrire des fonctions capables de traiter les éléments de niveau supérieur et leurs enfants de manière uniforme ; par exemple, des fonctions récursives.
bool QTreeWidget::isPersistentEditorOpen(QTreeWidgetItem *item, int column = 0) const
Indique si un éditeur persistant est ouvert pour l'élément item dans la colonne column.
Voir également ` openPersistentEditor()` et ` closePersistentEditor()`.
QTreeWidgetItem *QTreeWidget::itemAbove(const QTreeWidgetItem *item) const
Renvoie l'élément situé au-dessus de l'item.
[signal] void QTreeWidget::itemActivated(QTreeWidgetItem *item, int column)
Ce signal est émis lorsque l'utilisateur active un élément par un simple ou un double-clic (selon la plateforme, c'est-à-dire selon l'indication de style « QStyle::SH_ItemView_ActivateItemOnSingleClick ») ou en appuyant sur une touche spéciale (par exemple, « Enter »).
L'item spécifié correspond à l'élément sur lequel l'utilisateur a cliqué, ou à nullptr si aucun élément n'a été sélectionné. L'column correspond à la colonne de l'élément sur laquelle l'utilisateur a cliqué, ou à -1 si aucun élément n'a été sélectionné.
QTreeWidgetItem *QTreeWidget::itemAt(const QPoint &p) const
Renvoie un pointeur vers l'élément situé aux coordonnées p. Ces coordonnées sont relatives à la fonction viewport() du widget arborescent.
Voir également visualItemRect().
QTreeWidgetItem *QTreeWidget::itemAt(int x, int y) const
Renvoie un pointeur vers l'élément situé aux coordonnées (x, y). Les coordonnées sont relatives à la fonction ` viewport()` du widget arborescent.
Il s'agit d'une fonction surchargée.
QTreeWidgetItem *QTreeWidget::itemBelow(const QTreeWidgetItem *item) const
Renvoie l'élément situé visuellement en dessous de l'item.
[signal] void QTreeWidget::itemChanged(QTreeWidgetItem *item, int column)
Ce signal est émis lorsque le contenu de l'column, situé à l'adresse item, change.
[signal] void QTreeWidget::itemClicked(QTreeWidgetItem *item, int column)
Ce signal est émis lorsque l'utilisateur clique à l'intérieur du widget.
L'item spécifié correspond à l'élément sur lequel l'utilisateur a cliqué. L'column correspond à la colonne de l'élément sur laquelle l'utilisateur a cliqué. Si aucun élément n'a été cliqué, aucun signal ne sera émis.
[signal] void QTreeWidget::itemCollapsed(QTreeWidgetItem *item)
Ce signal est émis lorsque l'item spécifiée est réduite, de sorte qu'aucun de ses éléments enfants ne soit affiché.
Remarque : ce signal ne sera pas émis si un élément change d’état lors de l’appel de la fonction ` collapseAll()`.
Voir également QTreeWidgetItem::isExpanded(), itemExpanded() et collapseItem().
[signal] void QTreeWidget::itemDoubleClicked(QTreeWidgetItem *item, int column)
Ce signal est émis lorsque l'utilisateur double-clique à l'intérieur du widget.
L'item spécifié correspond à l'élément sur lequel l'utilisateur a cliqué, ou à nullptr si aucun élément n'a été sélectionné. L'column correspond à la colonne de l'élément sur laquelle l'utilisateur a cliqué. Si aucun élément n'a fait l'objet d'un double-clic, aucun signal ne sera émis.
[signal] void QTreeWidget::itemEntered(QTreeWidgetItem *item, int column)
Ce signal est émis lorsque le curseur de la souris entre dans une zone d’ item, au-dessus de l’ column spécifiée. QTreeWidget Le suivi de la souris doit être activé pour que cette fonctionnalité fonctionne.
[signal] void QTreeWidget::itemExpanded(QTreeWidgetItem *item)
Ce signal est émis lorsque l'item spécifiée est développée de manière à afficher tous ses éléments enfants.
Voir également QTreeWidgetItem::isExpanded(), itemCollapsed() et expandItem().
QTreeWidgetItem *QTreeWidget::itemFromIndex(const QModelIndex &index) const
Renvoie un pointeur vers l'QTreeWidgetItem associé à l'index donné.
Voir aussi indexFromItem().
[signal] void QTreeWidget::itemPressed(QTreeWidgetItem *item, int column)
Ce signal est émis lorsque l'utilisateur clique avec la souris à l'intérieur du widget.
L'item spécifiée correspond à l'élément sur lequel l'utilisateur a cliqué, ou à nullptr si aucun élément n'a été sélectionné. L'column correspond à la colonne de l'élément sur lequel l'utilisateur a cliqué, ou à -1 si aucun élément n'a été sélectionné.
[signal] void QTreeWidget::itemSelectionChanged()
Ce signal est émis lorsque la sélection change dans le widget arborescent. La sélection actuelle peut être obtenue à l'aide de la fonction ` selectedItems()`.
QWidget *QTreeWidget::itemWidget(QTreeWidgetItem *item, int column) const
Renvoie le widget affiché dans la cellule spécifiée par item et l'column donné.
Voir également setItemWidget() et removeItemWidget().
[virtual protected] QMimeData *QTreeWidget::mimeData(const QList<QTreeWidgetItem *> &items) const
Renvoie un objet contenant une description sérialisée de la liste spécifiée items. Le format utilisé pour décrire les éléments est obtenu à partir de la fonction mimeTypes().
Si la liste des éléments est vide, nullptr est renvoyé à la place d’une liste vide sérialisée.
[virtual protected] QStringList QTreeWidget::mimeTypes() const
Renvoie une liste des types MIME pouvant être utilisés pour décrire une liste d'éléments du widget arborescent.
Voir également mimeData().
void QTreeWidget::openPersistentEditor(QTreeWidgetItem *item, int column = 0)
Ouvre un éditeur persistant pour le fichier « item » situé à l'column indiquée.
Voir également closePersistentEditor() et isPersistentEditorOpen().
void QTreeWidget::removeItemWidget(QTreeWidgetItem *item, int column)
Supprime l'ensemble de widgets défini à l'adresse item dans la base de données column.
Voir également itemWidget() et setItemWidget().
[slot] void QTreeWidget::scrollToItem(const QTreeWidgetItem *item, QAbstractItemView::ScrollHint hint = EnsureVisible)
Garantit que l'item est visible, en faisant défiler la vue si nécessaire à l'aide de l'hint spécifiée.
Voir également currentItem(), itemAt() et topLevelItem().
QList<QTreeWidgetItem *> QTreeWidget::selectedItems() const
Renvoie une liste de tous les éléments sélectionnés qui ne sont pas masqués.
Voir aussi itemSelectionChanged().
void QTreeWidget::setCurrentItem(QTreeWidgetItem *item)
Définit l'item e actuelle dans le widget arborescent.
À moins que le mode de sélection ne soit « NoSelection », l'élément est également sélectionné.
Voir également ` currentItem()` et ` currentItemChanged()`.
void QTreeWidget::setCurrentItem(QTreeWidgetItem *item, int column)
Définit l'item e actuelle dans le widget arborescent et la colonne actuelle sur column.
Voir aussi currentItem().
void QTreeWidget::setCurrentItem(QTreeWidgetItem *item, int column, QItemSelectionModel::SelectionFlags command)
Définit l'item e actuelle dans le widget arborescent et la colonne actuelle sur « column », en utilisant l'command fournie.
Voir aussi currentItem().
void QTreeWidget::setHeaderItem(QTreeWidgetItem *item)
Définit l'item de l'en-tête du widget arborescent. Le libellé de chaque colonne de l'en-tête est fourni par le libellé correspondant dans l'élément.
Le widget arborescent prend possession de l'élément.
Voir également headerItem() et setHeaderLabels().
void QTreeWidget::setHeaderLabel(const QString &label)
Identique à setHeaderLabels(QStringList(label)).
void QTreeWidget::setHeaderLabels(const QStringList &labels)
Ajoute une colonne dans l'en-tête pour chaque élément de la liste ` labels ` et définit l'étiquette de chaque colonne.
Notez que la fonction setHeaderLabels() ne supprime pas les colonnes existantes.
Voir également ` setHeaderItem()` et ` setHeaderLabel()`.
void QTreeWidget::setItemWidget(QTreeWidgetItem *item, int column, QWidget *widget)
Définit l'widget spécifié pour qu'il s'affiche dans la cellule indiquée par les paramètres item et column.
La propriété autoFillBackground de l’ widget fournie doit être définie sur true, sinon l’arrière-plan du widget sera transparent, affichant à la fois les données du modèle et l’élément du widget arborescent.
Cette fonction ne doit être utilisée que pour afficher du contenu statique à la place d’un élément du widget arborescent. Si vous souhaitez afficher du contenu dynamique personnalisé ou implémenter un widget d’édition personnalisé, utilisez plutôt QTreeView et sous-classez QStyledItemDelegate.
Cette fonction ne peut pas être appelée avant que la hiérarchie des éléments ait été mise en place ; en d’autres termes, l’ QTreeWidgetItem qui contiendra widget doit avoir été ajouté à la vue avant que widget ne soit défini.
Remarque : l'arborescence prend possession de ` widget`.
Voir également ` itemWidget()`, ` removeItemWidget()` et « Classes de délégués ».
[override virtual] void QTreeWidget::setSelectionModel(QItemSelectionModel *selectionModel)
Réimplémente : QTreeView::setSelectionModel(QItemSelectionModel *selectionModel).
int QTreeWidget::sortColumn() const
Renvoie la colonne utilisée pour trier le contenu du widget.
Voir également sortItems().
void QTreeWidget::sortItems(int column, Qt::SortOrder order)
Trie les éléments du widget dans l'order spécifiée en fonction des valeurs contenues dans le fichier column fourni.
Voir également sortColumn().
[virtual protected] Qt::DropActions QTreeWidget::supportedDropActions() const
Renvoie les actions de glisser-déposer prises en charge par cette vue.
Voir également Qt::DropActions, supportedDragActions et dropMimeData().
QTreeWidgetItem *QTreeWidget::takeTopLevelItem(int index)
Supprime l'élément de niveau supérieur situé à l'index indiquée dans l'arborescence et le renvoie ; sinon, renvoie nullptr;
Voir également insertTopLevelItem(), topLevelItem() et topLevelItemCount().
QTreeWidgetItem *QTreeWidget::topLevelItem(int index) const
Renvoie l'élément de niveau supérieur à l'adresse index, ou nullptr si l'élément n'existe pas.
Voir également topLevelItemCount() et insertTopLevelItem().
QRect QTreeWidget::visualItemRect(const QTreeWidgetItem *item) const
Renvoie le rectangle occupé par l'élément dans la fenêtre d'affichage à l'adresse item.
Voir aussi itemAt().
© 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.