Sur cette page

QListWidget Class

La classe QListWidget fournit un widget de liste basé sur les éléments. Plus d'informations...

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

Propriétés

Fonctions publiques

QListWidget(QWidget *parent = nullptr)
virtual ~QListWidget()
void addItem(QListWidgetItem *item)
void addItem(const QString &label)
void addItems(const QStringList &labels)
void closePersistentEditor(QListWidgetItem *item)
int count() const
QListWidgetItem *currentItem() const
int currentRow() const
void editItem(QListWidgetItem *item)
QList<QListWidgetItem *> findItems(const QString &text, Qt::MatchFlags flags) const
QModelIndex indexFromItem(const QListWidgetItem *item) const
void insertItem(int row, QListWidgetItem *item)
void insertItem(int row, const QString &label)
void insertItems(int row, const QStringList &labels)
bool isPersistentEditorOpen(QListWidgetItem *item) const
bool isSortingEnabled() const
QListWidgetItem *item(int row) const
QListWidgetItem *itemAt(const QPoint &p) const
QListWidgetItem *itemAt(int x, int y) const
QListWidgetItem *itemFromIndex(const QModelIndex &index) const
QWidget *itemWidget(QListWidgetItem *item) const
QList<QListWidgetItem *> items(const QMimeData *data) const
void openPersistentEditor(QListWidgetItem *item)
void removeItemWidget(QListWidgetItem *item)
int row(const QListWidgetItem *item) const
QList<QListWidgetItem *> selectedItems() const
void setCurrentItem(QListWidgetItem *item)
void setCurrentItem(QListWidgetItem *item, QItemSelectionModel::SelectionFlags command)
void setCurrentRow(int row)
void setCurrentRow(int row, QItemSelectionModel::SelectionFlags command)
void setItemWidget(QListWidgetItem *item, QWidget *widget)
void setSortingEnabled(bool enable)
void setSupportedDragActions(Qt::DropActions actions)
void sortItems(Qt::SortOrder order = Qt::AscendingOrder)
Qt::DropActions supportedDragActions() const
QListWidgetItem *takeItem(int row)
QRect visualItemRect(const QListWidgetItem *item) const

Fonctions publiques réimplémentées

virtual void setSelectionModel(QItemSelectionModel *selectionModel) override

Emplacements publics

void clear()
void scrollToItem(const QListWidgetItem *item, QAbstractItemView::ScrollHint hint = EnsureVisible)

Signaux

void currentItemChanged(QListWidgetItem *current, QListWidgetItem *previous)
void currentRowChanged(int currentRow)
void currentTextChanged(const QString &currentText)
void itemActivated(QListWidgetItem *item)
void itemChanged(QListWidgetItem *item)
void itemClicked(QListWidgetItem *item)
void itemDoubleClicked(QListWidgetItem *item)
void itemEntered(QListWidgetItem *item)
void itemPressed(QListWidgetItem *item)
void itemSelectionChanged()

Fonctions protégées

virtual bool dropMimeData(int index, const QMimeData *data, Qt::DropAction action)
virtual QMimeData *mimeData(const QList<QListWidgetItem *> &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

Liste des icônes météo

QListWidget est une classe de commodité qui fournit une vue de liste similaire à celle fournie par QListView, mais avec une interface classique basée sur les éléments pour l'ajout et la suppression d'éléments. QListWidget utilise un modèle interne pour gérer chaque QListWidgetItem dans la liste.

Pour un widget de liste plus flexible, utilisez la classe QListView avec un modèle standard.

Les widgets de liste sont construits de la même manière que les autres widgets :

QListWidget *listWidget = new QListWidget(this);

Le paramètre selectionMode() d'un widget de liste détermine combien d'éléments de la liste peuvent être sélectionnés en même temps et s'il est possible de créer des sélections complexes d'éléments. Elle peut être définie à l'aide de la fonction setSelectionMode().

Il existe deux façons d'ajouter des éléments à la liste : ils peuvent être construits avec le widget de liste comme widget parent, ou ils peuvent être construits sans widget parent et ajoutés à la liste ultérieurement. Si un widget de liste existe déjà lorsque les éléments sont construits, la première méthode est plus facile à utiliser :

new QListWidgetItem(tr("Oak"), listWidget);
new QListWidgetItem(tr("Fir"), listWidget);
new QListWidgetItem(tr("Pine"), listWidget);

Si vous devez insérer un nouvel élément dans la liste à une position particulière, il doit être construit sans widget parent. La fonction insertItem() doit alors être utilisée pour le placer dans la liste. Le widget de liste devient propriétaire de l'élément.

QListWidgetItem *newItem = new QListWidgetItem;
newItem->setText(itemText);
listWidget->insertItem(row, newItem);

Pour les éléments multiples, la fonction insertItems() peut être utilisée à la place. Le nombre d'éléments dans la liste est déterminé à l'aide de la fonction count(). Pour supprimer des éléments de la liste, utilisez la fonction takeItem().

L'élément actuel de la liste peut être trouvé avec currentItem(), et modifié avec setCurrentItem(). L'utilisateur peut également modifier l'élément en cours en naviguant avec le clavier ou en cliquant sur un autre élément. Lorsque l'élément courant change, le signal currentItemChanged() est émis avec le nouvel élément courant et l'élément qui était précédemment courant.

Voir également QListWidgetItem, QListView, QTreeView, Programmation modèle/vue, et Exemple de boîte de dialogue à onglets.

Documentation sur les propriétés

[read-only] count : int

Cette propriété contient le nombre d'éléments de la liste, y compris les éléments cachés.

Fonctions d'accès :

int count() const

currentRow : int

Cette propriété contient la ligne de l'élément en cours.

Selon le mode de sélection en cours, la ligne peut également être sélectionnée.

Fonctions d'accès :

int currentRow() const
void setCurrentRow(int row)
void setCurrentRow(int row, QItemSelectionModel::SelectionFlags command)

Signal de notification :

void currentRowChanged(int currentRow)

sortingEnabled : bool

Cette propriété indique si le tri est activé

Si cette propriété vaut true, le tri est activé pour la liste ; si la propriété vaut false, le tri n'est pas activé.

La valeur par défaut est false.

Fonctions d'accès :

bool isSortingEnabled() const
void setSortingEnabled(bool enable)

[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 également Qt::DropActions et supportedDropActions().

Documentation des fonctions membres

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

Construit un QListWidget vide avec l'adresse parent.

[virtual noexcept] QListWidget::~QListWidget()

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

void QListWidget::addItem(QListWidgetItem *item)

Insère le item à la fin du widget de liste.

Attention : Un QListWidgetItem ne peut être ajouté à un QListWidget qu'une seule fois. L'ajout multiple du même QListWidgetItem à un QListWidget entraînera un comportement indéfini.

Voir aussi insertItem().

void QListWidget::addItem(const QString &label)

Insère un élément avec le texte label à la fin du widget de liste.

void QListWidget::addItems(const QStringList &labels)

Insère les éléments contenant le texte labels à la fin du widget de liste.

Voir aussi insertItems().

[slot] void QListWidget::clear()

Supprime tous les éléments et toutes les sélections de la vue.

Attention : Tous les éléments seront définitivement supprimés.

void QListWidget::closePersistentEditor(QListWidgetItem *item)

Ferme l'éditeur persistant pour le site item donné.

Voir aussi openPersistentEditor() et isPersistentEditorOpen().

QListWidgetItem *QListWidget::currentItem() const

Renvoie l'élément actuel.

Voir aussi setCurrentItem().

[signal] void QListWidget::currentItemChanged(QListWidgetItem *current, QListWidgetItem *previous)

Ce signal est émis lorsque l'élément courant change.

previous est l'élément qui avait précédemment le focus ; current est le nouvel élément courant.

[signal] void QListWidget::currentRowChanged(int currentRow)

Ce signal est émis lorsque l'élément en cours est modifié.

currentRow est la ligne de l'élément courant. S'il n'y a pas d'élément courant, la valeur de currentRow est -1.

Note : Signal de notification pour la propriété currentRow.

[signal] void QListWidget::currentTextChanged(const QString &currentText)

Ce signal est émis lorsque l'élément en cours est modifié.

currentText est le texte de l'élément en cours. S'il n'y a pas d'élément courant, le site currentText n'est pas valide.

[override virtual protected] void QListWidget::dropEvent(QDropEvent *event)

Réimplémente : QListView::dropEvent(QDropEvent *event).

[virtual protected] bool QListWidget::dropMimeData(int index, const QMimeData *data, Qt::DropAction action)

Traite data fourni par une opération externe de glisser-déposer qui s'est terminée par action dans index. Renvoie true si data et action peuvent être traités par le modèle ; sinon, renvoie false.

Voir également supportedDropActions() et supportedDragActions.

void QListWidget::editItem(QListWidgetItem *item)

Commence à éditer le site item s'il est modifiable.

[override virtual protected] bool QListWidget::event(QEvent *e)

Réimplémente : QListView::event(QEvent *e).

QList<QListWidgetItem *> QListWidget::findItems(const QString &text, Qt::MatchFlags flags) const

Recherche les éléments dont le texte correspond à la chaîne de caractères text en utilisant la chaîne de caractères flags.

QModelIndex QListWidget::indexFromItem(const QListWidgetItem *item) const

Retourne le QModelIndex associé au item donné.

Note : Dans les versions de Qt antérieures à 5.10, cette fonction prenait une valeur nonconst item .

void QListWidget::insertItem(int row, QListWidgetItem *item)

Insère le fichier item à la position dans la liste donnée par row.

Voir aussi addItem().

void QListWidget::insertItem(int row, const QString &label)

Insère un élément avec le texte label dans le widget liste à la position donnée par row.

Voir aussi addItem().

void QListWidget::insertItems(int row, const QStringList &labels)

Insère des éléments de la liste de labels dans la liste, en commençant par row.

Voir aussi insertItem() et addItem().

bool QListWidget::isPersistentEditorOpen(QListWidgetItem *item) const

Indique si un éditeur persistant est ouvert pour l'élément item.

Voir aussi openPersistentEditor() et closePersistentEditor().

QListWidgetItem *QListWidget::item(int row) const

Renvoie l'élément qui occupe l'emplacement donné row dans la liste si un emplacement a été défini ; sinon, renvoie nullptr.

Voir aussi row().

[signal] void QListWidget::itemActivated(QListWidgetItem *item)

Ce signal est émis lorsque le site item est activé. Le site item est activé lorsque l'utilisateur clique ou double-clique dessus, selon la configuration du système. Il est également activé lorsque l'utilisateur appuie sur la touche d'activation (sous Windows et X11, il s'agit de la touche Return, sous Mac OS X, il s'agit de la touche Command+O).

QListWidgetItem *QListWidget::itemAt(const QPoint &p) const

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

QListWidgetItem *QListWidget::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 liste.

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

[signal] void QListWidget::itemChanged(QListWidgetItem *item)

Ce signal est émis lorsque les données de item ont changé.

[signal] void QListWidget::itemClicked(QListWidgetItem *item)

Ce signal est émis avec l'adresse item spécifiée lorsqu'un bouton de souris est cliqué sur un élément du widget.

Voir aussi itemPressed() et itemDoubleClicked().

[signal] void QListWidget::itemDoubleClicked(QListWidgetItem *item)

Ce signal est émis avec l'adresse item spécifiée lorsqu'un bouton de souris est doublement cliqué sur un élément du widget.

Voir aussi itemClicked() et itemPressed().

[signal] void QListWidget::itemEntered(QListWidgetItem *item)

Ce signal est émis lorsque le curseur de la souris entre dans un élément. L'adresse item correspond à l'élément saisi. Ce signal n'est émis que lorsque le suivi de la souris est activé ou lorsqu'un bouton de la souris est enfoncé pendant que le curseur entre dans un élément.

Voir aussi QWidget::setMouseTracking().

QListWidgetItem *QListWidget::itemFromIndex(const QModelIndex &index) const

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

[signal] void QListWidget::itemPressed(QListWidgetItem *item)

Ce signal est émis avec l'adresse item spécifiée lorsqu'un bouton de souris est pressé sur un élément du widget.

Voir aussi itemClicked() et itemDoubleClicked().

[signal] void QListWidget::itemSelectionChanged()

Ce signal est émis chaque fois que la sélection change.

Voir aussi selectedItems(), QListWidgetItem::isSelected() et currentItemChanged().

QWidget *QListWidget::itemWidget(QListWidgetItem *item) const

Renvoie le widget affiché sur le site item.

Voir aussi setItemWidget() et removeItemWidget().

QList<QListWidgetItem *> QListWidget::items(const QMimeData *data) const

Renvoie une liste de pointeurs vers les éléments contenus dans l'objet data. Si l'objet n'a pas été créé par un QListWidget dans le même processus, la liste est vide.

[virtual protected] QMimeData *QListWidget::mimeData(const QList<QListWidgetItem *> &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é à la place d'une liste vide sérialisée.

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

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

Voir aussi mimeData().

void QListWidget::openPersistentEditor(QListWidgetItem *item)

Ouvre un éditeur pour le site item. L'éditeur reste ouvert après l'édition.

Voir aussi closePersistentEditor() et isPersistentEditorOpen().

void QListWidget::removeItemWidget(QListWidgetItem *item)

Supprime l'ensemble de widgets sur le site item.

Pour supprimer entièrement un élément (ligne) de la liste, il faut soit supprimer l'élément, soit utiliser takeItem().

Voir également itemWidget() et setItemWidget().

int QListWidget::row(const QListWidgetItem *item) const

Renvoie la ligne contenant l'adresse item.

Voir aussi item().

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

Fait défiler la vue si nécessaire pour s'assurer que le site item est visible.

hint spécifie l'endroit où le site item doit se trouver après l'opération.

QList<QListWidgetItem *> QListWidget::selectedItems() const

Renvoie une liste de tous les éléments sélectionnés dans le widget de liste.

void QListWidget::setCurrentItem(QListWidgetItem *item)

Définit l'élément actuel sur item.

Si le mode de sélection n'est pas NoSelection, l'élément est également sélectionné.

Voir également currentItem().

void QListWidget::setCurrentItem(QListWidgetItem *item, QItemSelectionModel::SelectionFlags command)

Fixer l'élément actuel à item, en utilisant la valeur donnée command.

void QListWidget::setCurrentRow(int row, QItemSelectionModel::SelectionFlags command)

Définit la ligne actuelle comme étant la ligne donnée row, en utilisant la ligne donnée command,

Note : Fonction de définition de la propriété currentRow.

Voir aussi currentRow().

void QListWidget::setItemWidget(QListWidgetItem *item, QWidget *widget)

Définit l'adresse widget à afficher dans l'adresse item donnée.

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

Remarque : la liste est propriétaire de l'élément widget.

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

[override virtual] void QListWidget::setSelectionModel(QItemSelectionModel *selectionModel)

Réimplémente : QAbstractItemView::setSelectionModel(QItemSelectionModel *selectionModel).

void QListWidget::sortItems(Qt::SortOrder order = Qt::AscendingOrder)

Trie tous les éléments du widget de liste en fonction de l'adresse order spécifiée.

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

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

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

QListWidgetItem *QListWidget::takeItem(int row)

Supprime et renvoie l'élément de l'adresse row donnée dans le widget de liste ; sinon, renvoie nullptr.

Les éléments supprimés d'un widget de liste ne seront pas gérés par Qt, et devront être supprimés manuellement.

Voir aussi insertItem() et addItem().

QRect QListWidget::visualItemRect(const QListWidgetItem *item) const

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

© 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.