Sur cette page

QTreeWidget Class

La classe QTreeWidget fournit une vue d'arbre qui utilise un modèle d'arbre prédéfini. Plus d'informations...

En-tête : #include <QTreeWidget>
CMake : find_package(Qt6 REQUIRED COMPONENTS Widgets)
target_link_libraries(mytarget PRIVATE Qt6::Widgets)
qmake : QT += widgets
Héritages : QTreeView

Propriétés

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

Emplacements 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

virtual void dropEvent(QDropEvent *event) override
virtual bool event(QEvent *e) override

Description détaillée

Répertoire affichant son contenu sous forme d'arbre

La classe QTreeWidget est une classe de commodité qui fournit un widget d'arbre standard avec une interface classique basée sur les éléments, similaire à celle utilisée par la classe QListView dans Qt 3. Cette classe est basée sur l'architecture Modèle/Vue de Qt et utilise un modèle par défaut pour contenir les éléments, chacun d'entre eux étant un QTreeWidgetItem.

Les développeurs qui n'ont pas besoin de la flexibilité du cadre Modèle/Vue peuvent utiliser cette classe pour créer très facilement des listes hiérarchiques simples. Une approche plus souple consiste à combiner un site QTreeView avec un modèle d'élément standard. Cela permet de séparer le stockage des données de leur représentation.

Dans sa forme la plus simple, un widget arbre peut être construit de la manière suivante :

QTreeWidget *treeWidget = new QTreeWidget();
treeWidget->setColumnCount(1);
QList<QTreeWidgetItem *> items;
for (int i = 0; i < 10; ++i)
    items.append(new QTreeWidgetItem(static_cast<QTreeWidget *>(nullptr), QStringList(QString("item: %1").arg(i))));
treeWidget->insertTopLevelItems(0, items);

Avant d'ajouter des éléments au widget arbre, le nombre de colonnes doit être défini à l'aide de setColumnCount(). Cela permet à chaque élément d'avoir une ou plusieurs étiquettes ou autres décorations. Le nombre de colonnes utilisées peut être déterminé à l'aide de la fonction columnCount().

L'arbre peut avoir un en-tête qui contient une section pour chaque colonne du widget. Il est plus facile de définir les étiquettes de chaque section en fournissant une liste de chaînes avec setHeaderLabels(), mais un en-tête personnalisé peut être construit avec QTreeWidgetItem et inséré dans l'arbre avec la fonction setHeaderItem().

Les éléments de l'arbre 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 un en-tête de 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é indique le nombre de colonnes affichées dans le widget de l'arbre

Par défaut, cette propriété a une valeur de 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 déplacement prises en charge par cette vue

Cette propriété a été introduite dans Qt 6.10.

Fonctions d'accès :

Qt::DropActions supportedDragActions() const
void setSupportedDragActions(Qt::DropActions actions)

Voir aussi Qt::DropActions et supportedDropActions().

[read-only] topLevelItemCount : int

Cette propriété indique le nombre d'éléments de premier niveau

Par défaut, cette propriété a une valeur de 0.

Fonctions d'accès :

int topLevelItemCount() const

Voir aussi columnCount() et currentItem().

Documentation des fonctions membres

[explicit] QTreeWidget::QTreeWidget(QWidget *parent = nullptr)

Construit un widget d'arbre avec l'adresse parent.

[virtual noexcept] QTreeWidget::~QTreeWidget()

Détruit le widget arbre et tous ses éléments.

void QTreeWidget::addTopLevelItem(QTreeWidgetItem *item)

Ajoute le site item en tant qu'élément de premier niveau dans le widget.

Voir aussi insertTopLevelItem().

void QTreeWidget::addTopLevelItems(const QList<QTreeWidgetItem *> &items)

Ajoute la liste de items en tant qu'élément de premier niveau dans le widget.

Voir aussi insertTopLevelItems().

[slot] void QTreeWidget::clear()

Efface le widget arbre en supprimant tous ses éléments et sélections.

Remarque : étant donné que chaque élément est retiré du widget arbre avant d'être supprimé, la valeur de retour de QTreeWidgetItem::treeWidget() sera invalide si elle est appelée à partir du destructeur d'un élément.

Voir aussi takeTopLevelItem(), topLevelItemCount() et columnCount().

void QTreeWidget::closePersistentEditor(QTreeWidgetItem *item, int column = 0)

Ferme l'éditeur persistant pour le site item dans le site column.

Cette fonction n'a aucun effet si aucun éditeur persistant n'est ouvert pour cette combinaison d'élément et de colonne.

Voir aussi openPersistentEditor() et isPersistentEditorOpen().

[slot] void QTreeWidget::collapseItem(const QTreeWidgetItem *item)

Ferme le site item, ce qui a pour effet de réduire l'arbre contenant les enfants de l'élément.

Voir aussi expandItem(), currentItem(), itemAt() et topLevelItem().

int QTreeWidget::currentColumn() const

Renvoie la colonne actuelle dans le widget de l'arbre.

Voir aussi setCurrentItem() et columnCount().

QTreeWidgetItem *QTreeWidget::currentItem() const

Renvoie l'élément actuel dans le widget de l'arbre.

Voir aussi setCurrentItem() et currentItemChanged().

[signal] void QTreeWidget::currentItemChanged(QTreeWidgetItem *current, QTreeWidgetItem *previous)

Ce signal est émis lorsque l'élément courant change. L'élément courant est spécifié par current, et remplace l'élément courant previous.

Voir aussi 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)

Traite l'élément data fourni par une opération de glisser-déposer qui s'est terminée par l'élément action dans l'élément index dans l'élément parent.

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 aussi supportedDropActions() et supportedDragActions.

void QTreeWidget::editItem(QTreeWidgetItem *item, int column = 0)

Commence à modifier l'adresse item dans l'adresse column donnée, si elle 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, ce qui a pour effet de développer l'arbre contenant les enfants de l'élément.

Voir aussi 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 qui correspondent à text, en utilisant flags, dans column.

QTreeWidgetItem *QTreeWidget::headerItem() const

Renvoie l'élément utilisé pour l'en-tête du widget arbre.

Voir aussi setHeaderItem().

QModelIndex QTreeWidget::indexFromItem(const QTreeWidgetItem *item, int column = 0) const

Renvoie l'adresse QModelIndex associée à l'adresse item dans l'adresse column.

Remarque : dans les versions de Qt antérieures à la version 5.7, cette fonction prenait une valeur nonconst item .

Voir aussi itemFromIndex() et topLevelItem().

int QTreeWidget::indexOfTopLevelItem(QTreeWidgetItem *item) const

Renvoie l'index de l'élément de premier niveau item, ou -1 si l'élément est introuvable.

Voir aussi sortItems() et topLevelItemCount().

void QTreeWidget::insertTopLevelItem(int index, QTreeWidgetItem *item)

Insère le site item à 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 de items à index au niveau supérieur de la vue.

Les éléments qui ont déjà été 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 arbre.

L'élément racine invisible permet d'accéder aux éléments de premier niveau du widget d'arbre via l'API QTreeWidgetItem, ce qui permet d'écrire des fonctions qui peuvent traiter les éléments de premier niveau et leurs enfants d'une 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 aussi openPersistentEditor() et closePersistentEditor().

QTreeWidgetItem *QTreeWidget::itemAbove(const QTreeWidgetItem *item) const

Renvoie l'élément situé au-dessus de l'adresse item.

[signal] void QTreeWidget::itemActivated(QTreeWidgetItem *item, int column)

Ce signal est émis lorsque l'utilisateur active un élément par simple ou double-clic (en fonction de la plate-forme, c'est-à-dire sur l'indice de style QStyle::SH_ItemView_ActivateItemOnSingleClick ) ou en appuyant sur une touche spéciale (par exemple, Enter).

L'adresse item spécifiée est l'élément qui a été cliqué, ou nullptr si aucun élément n'a été cliqué. column est la colonne de l'élément qui a été cliqué, ou -1 si aucun élément n'a été cliqué.

QTreeWidgetItem *QTreeWidget::itemAt(const QPoint &p) const

Renvoie un pointeur sur l'élément aux coordonnées p. Les coordonnées sont relatives au widget de l'arbre viewport().

Voir aussi visualItemRect().

QTreeWidgetItem *QTreeWidget::itemAt(int x, int y) const

Renvoie un pointeur sur l'élément aux coordonnées (x, y). Les coordonnées sont relatives à l'adresse viewport() du widget de l'arbre.

Il s'agit d'une fonction surchargée.

QTreeWidgetItem *QTreeWidget::itemBelow(const QTreeWidgetItem *item) const

Renvoie l'élément visuellement inférieur à l'élément donné item.

[signal] void QTreeWidget::itemChanged(QTreeWidgetItem *item, int column)

Ce signal est émis lorsque le contenu du site column dans le site item spécifié change.

[signal] void QTreeWidget::itemClicked(QTreeWidgetItem *item, int column)

Ce signal est émis lorsque l'utilisateur clique à l'intérieur du widget.

L'adresse item spécifiée correspond à l'élément sur lequel l'utilisateur a cliqué. Le column est la colonne de l'élément qui a été cliqué. Si aucun élément n'a été cliqué, aucun signal n'est émis.

[signal] void QTreeWidget::itemCollapsed(QTreeWidgetItem *item)

Ce signal est émis lorsque le site item spécifié est réduit de manière à ce qu'aucun de ses enfants ne soit affiché.

Remarque : ce signal n'est pas émis si un élément change d'état lorsque collapseAll() est invoqué.

Voir aussi 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'adresse item spécifiée est l'élément qui a été cliqué, ou nullptr si aucun élément n'a été cliqué. column est la colonne de l'élément qui a été cliqué. Si aucun élément n'a été doublement cliqué, aucun signal n'est émis.

[signal] void QTreeWidget::itemEntered(QTreeWidgetItem *item, int column)

Ce signal est émis lorsque le curseur de la souris entre dans une zone item au-dessus de la zone spécifiée column. Le suivi de la souris QTreeWidget doit être activé pour que cette fonction fonctionne.

[signal] void QTreeWidget::itemExpanded(QTreeWidgetItem *item)

Ce signal est émis lorsque le site item spécifié est développé de manière à ce que tous ses enfants soient affichés.

Voir aussi QTreeWidgetItem::isExpanded(), itemCollapsed() et expandItem().

QTreeWidgetItem *QTreeWidget::itemFromIndex(const QModelIndex &index) const

Renvoie un pointeur sur le site QTreeWidgetItem associé au site index donné.

Voir aussi indexFromItem().

[signal] void QTreeWidget::itemPressed(QTreeWidgetItem *item, int column)

Ce signal est émis lorsque l'utilisateur appuie sur un bouton de la souris à l'intérieur du widget.

La valeur spécifiée item correspond à l'élément sur lequel l'utilisateur a cliqué, ou nullptr si aucun élément n'a été cliqué. column est la colonne de l'élément qui a été cliqué, ou -1 si aucun élément n'a été cliqué.

[signal] void QTreeWidget::itemSelectionChanged()

Ce signal est émis lorsque la sélection change dans le widget arbre. La sélection actuelle peut être trouvée avec selectedItems().

QWidget *QTreeWidget::itemWidget(QTreeWidgetItem *item, int column) const

Renvoie le widget affiché dans la cellule spécifiée par item et la donnée column.

Voir aussi setItemWidget() et removeItemWidget().

[virtual protected] QMimeData *QTreeWidget::mimeData(const QList<QTreeWidgetItem *> &items) const

Renvoie un objet qui contient une description sérialisée de l'élément spécifié 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é au lieu d'une liste vide sérialisée.

[virtual protected] QStringList QTreeWidget::mimeTypes() const

Renvoie une liste de types MIME pouvant être utilisés pour décrire une liste d'éléments de treewidget.

Voir aussi mimeData().

void QTreeWidget::openPersistentEditor(QTreeWidgetItem *item, int column = 0)

Ouvre un éditeur persistant pour le site item dans le site column.

Voir aussi closePersistentEditor() et isPersistentEditorOpen().

void QTreeWidget::removeItemWidget(QTreeWidgetItem *item, int column)

Supprime le widget défini dans l'adresse item dans l'adresse column.

Voir aussi itemWidget() et setItemWidget().

[slot] void QTreeWidget::scrollToItem(const QTreeWidgetItem *item, QAbstractItemView::ScrollHint hint = EnsureVisible)

S'assure que le site item est visible, en faisant défiler la vue si nécessaire à l'aide du site hint spécifié.

Voir aussi currentItem(), itemAt() et topLevelItem().

QList<QTreeWidgetItem *> QTreeWidget::selectedItems() const

Renvoie une liste de tous les éléments sélectionnés non cachés.

Voir également itemSelectionChanged().

void QTreeWidget::setCurrentItem(QTreeWidgetItem *item)

Définit l'adresse item dans le widget de l'arbre.

À 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'adresse item dans le widget de l'arbre et la colonne actuelle à column.

Voir aussi currentItem().

void QTreeWidget::setCurrentItem(QTreeWidgetItem *item, int column, QItemSelectionModel::SelectionFlags command)

Définit l'adresse item dans le widget de l'arbre et la colonne actuelle à column, en utilisant l'adresse command.

Voir aussi currentItem().

void QTreeWidget::setHeaderItem(QTreeWidgetItem *item)

Définit l'en-tête item pour le widget arbre. L'étiquette de chaque colonne de l'en-tête est fournie par l'étiquette correspondante de l'élément.

Le widget de l'arbre est propriétaire de l'élément.

Voir aussi 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 setHeaderLabels() ne supprime pas les colonnes existantes.

Voir aussi setHeaderItem() et setHeaderLabel().

void QTreeWidget::setItemWidget(QTreeWidgetItem *item, int column, QWidget *widget)

Définit l'affichage de l'élément widget dans la cellule spécifiée par les éléments item et column.

La propriété autoFillBackground de widget doit être définie sur true, sinon l'arrière-plan du widget sera transparent, montrant à la fois les données du modèle et l'élément du widget de l'arbre.

Cette fonction ne doit être utilisée que pour afficher un contenu statique à la place d'un élément du widget arbre. Si vous souhaitez afficher un contenu dynamique personnalisé ou mettre en œuvre un widget d'éditeur personnalisé, utilisez plutôt QTreeView et la sous-classe QStyledItemDelegate.

Cette fonction ne peut pas être appelée avant que la hiérarchie des éléments n'ait été mise en place, c'est-à-dire que l'élément QTreeWidgetItem qui contiendra widget doit avoir été ajouté à la vue avant que widget ne soit mis en place.

Remarque : l'arbre est propriétaire de widget.

Voir également itemWidget(), removeItemWidget() et Delegate Classes.

[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 aussi sortItems().

void QTreeWidget::sortItems(int column, Qt::SortOrder order)

Trie les éléments du widget dans l'adresse order spécifiée en fonction des valeurs indiquées dans l'adresse column.

Voir aussi sortColumn().

[virtual protected] Qt::DropActions QTreeWidget::supportedDropActions() const

Renvoie les actions de dépôt prises en charge par cette vue.

Voir aussi Qt::DropActions, supportedDragActions, et dropMimeData().

QTreeWidgetItem *QTreeWidget::takeTopLevelItem(int index)

Supprime l'élément de premier niveau à l'endroit donné index dans l'arbre et le renvoie, sinon renvoie nullptr;

Voir aussi insertTopLevelItem(), topLevelItem(), et topLevelItemCount().

QTreeWidgetItem *QTreeWidget::topLevelItem(int index) const

Renvoie l'élément de premier niveau à l'adresse index, ou nullptr si l'élément n'existe pas.

Voir aussi topLevelItemCount() et insertTopLevelItem().

QRect QTreeWidget::visualItemRect(const QTreeWidgetItem *item) const

Renvoie le rectangle de la fenêtre de visualisation occupé par l'élément à l'adresse item.

Voir également 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.