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
- 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 |
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
Description détaillée

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.