Sur cette page

QListView Class

La classe QListView permet d'afficher un modèle sous forme de liste ou d'icônes. En savoir plus...

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

QHelpIndexWidget, QListWidget et QUndoView

Types publics

enum Flow { LeftToRight, TopToBottom }
enum LayoutMode { SinglePass, Batched }
enum Movement { Static, Free, Snap }
enum ResizeMode { Fixed, Adjust }
enum ViewMode { ListMode, IconMode }

Propriétés

Fonctions publiques

QListView(QWidget *parent = nullptr)
virtual ~QListView()
int batchSize() const
void clearPropertyFlags()
QListView::Flow flow() const
QSize gridSize() const
bool isRowHidden(int row) const
bool isSelectionRectVisible() const
bool isWrapping() const
Qt::Alignment itemAlignment() const
QListView::LayoutMode layoutMode() const
int modelColumn() const
QListView::Movement movement() const
QListView::ResizeMode resizeMode() const
void setBatchSize(int batchSize)
void setFlow(QListView::Flow flow)
void setGridSize(const QSize &size)
void setItemAlignment(Qt::Alignment alignment)
void setLayoutMode(QListView::LayoutMode mode)
void setModelColumn(int column)
void setMovement(QListView::Movement movement)
void setResizeMode(QListView::ResizeMode mode)
void setRowHidden(int row, bool hide)
void setSelectionRectVisible(bool show)
void setSpacing(int space)
void setUniformItemSizes(bool enable)
void setViewMode(QListView::ViewMode mode)
void setWordWrap(bool on)
void setWrapping(bool enable)
int spacing() const
bool uniformItemSizes() const
QListView::ViewMode viewMode() const
bool wordWrap() const

Fonctions publiques réimplémentées

virtual QModelIndex indexAt(const QPoint &p) const override
virtual void scrollTo(const QModelIndex &index, QAbstractItemView::ScrollHint hint = EnsureVisible) override
virtual void setRootIndex(const QModelIndex &index) override
virtual QRect visualRect(const QModelIndex &index) const override

Signaux

void indexesMoved(const QModelIndexList &indexes)

Fonctions protégées

QRect rectForIndex(const QModelIndex &index) const
void setPositionForIndex(const QPoint &position, const QModelIndex &index)

Fonctions protégées réimplémentées

virtual void currentChanged(const QModelIndex &current, const QModelIndex &previous) override
virtual void dataChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight, const QList<int> &roles = QList<int>()) override
virtual void dragLeaveEvent(QDragLeaveEvent *e) override
virtual void dragMoveEvent(QDragMoveEvent *e) override
virtual void dropEvent(QDropEvent *event) override
virtual bool event(QEvent *e) override
virtual int horizontalOffset() const override
virtual void initViewItemOption(QStyleOptionViewItem *option) const override
virtual bool isIndexHidden(const QModelIndex &index) const override
virtual void mouseMoveEvent(QMouseEvent *e) override
virtual void mouseReleaseEvent(QMouseEvent *e) override
virtual QModelIndex moveCursor(QAbstractItemView::CursorAction cursorAction, Qt::KeyboardModifiers modifiers) override
virtual void paintEvent(QPaintEvent *e) override
virtual void resizeEvent(QResizeEvent *e) override
virtual void rowsAboutToBeRemoved(const QModelIndex &parent, int start, int end) override
virtual void rowsInserted(const QModelIndex &parent, int start, int end) override
virtual void scrollContentsBy(int dx, int dy) override
virtual QModelIndexList selectedIndexes() const override
virtual void selectionChanged(const QItemSelection &selected, const QItemSelection &deselected) override
virtual void setSelection(const QRect &rect, QItemSelectionModel::SelectionFlags command) override
virtual void startDrag(Qt::DropActions supportedActions) override
virtual void timerEvent(QTimerEvent *e) override
virtual void updateGeometries() override
virtual int verticalOffset() const override
virtual QSize viewportSizeHint() const override
virtual QRegion visualRegionForSelection(const QItemSelection &selection) const override
virtual void wheelEvent(QWheelEvent *e) override

Description détaillée

Liste des icônes météo

Une classe QListView présente les éléments stockés dans un modèle, soit sous la forme d'une simple liste non hiérarchique, soit sous la forme d'une collection d'icônes. Cette classe est utilisée pour fournir des listes et des vues d'icônes qui étaient auparavant fournies par les classes QListBox et QIconView, mais en utilisant l'approche plus flexible offerte par l'architecture modèle/vue de Qt.

La classe QListView fait partie des classes modèle/vue et s'inscrit dans le cadre modèle/vue de Qt.

Cette vue n’affiche pas d’en-têtes horizontaux ou verticaux ; pour afficher une liste d’éléments avec un en-tête horizontal, utilisez plutôt QTreeView.

QListView implémente les interfaces définies par la classe QAbstractItemView afin de pouvoir afficher les données fournies par des modèles dérivés de la classe QAbstractItemModel.

Les éléments d’une vue de liste peuvent être affichés selon l’un des deux modes de vue suivants : en mode « ListMode », les éléments sont affichés sous la forme d’une simple liste ; en mode « IconMode », la vue de liste prend la forme d’une vue par icônes dans laquelle les éléments sont affichés avec des icônes, à l’instar des fichiers dans un gestionnaire de fichiers. Par défaut, la vue de liste est en mode « ListMode ». Pour modifier le mode d’affichage, utilisez la fonction ` setViewMode()` ; pour déterminer le mode d’affichage actuel, utilisez ` viewMode()`.

Les éléments de ces vues sont disposés dans la direction spécifiée par la méthode ` flow()` de la vue de liste. Les éléments peuvent être fixés à leur emplacement ou autorisés à se déplacer, selon l’état de la propriété ` movement()` de la vue.

Si les éléments du modèle ne peuvent pas être entièrement disposés dans le sens du flux, ils peuvent être renvoyés à la ligne à la limite du widget de vue ; cela dépend de la propriété ` isWrapping()`. Cette propriété est utile lorsque les éléments sont représentés par une vue d’icônes.

Les propriétés « resizeMode() » et « layoutMode() » déterminent comment et quand les éléments sont disposés. Les éléments sont espacés en fonction de leur propriété « spacing() » et peuvent s’inscrire dans une grille théorique dont la taille est spécifiée par la propriété « gridSize() ». Les éléments peuvent être affichés sous forme d’icônes grandes ou petites en fonction de leur propriété « iconSize() ».

Amélioration des performances

Il est possible de fournir à la vue des indications sur les données qu’elle traite afin d’améliorer ses performances lors de l’affichage d’un grand nombre d’éléments. Une approche possible pour les vues destinées à afficher des éléments de taille égale consiste à définir la propriété uniformItemSizes sur true.

Voir également Classes de vues, QTreeView, QTableView et QListWidget.

Documentation sur les types de membres

enum QListView::Flow

ConstanteValeurDescription
QListView::LeftToRight0Les éléments sont disposés dans la vue de gauche à droite.
QListView::TopToBottom1Les éléments sont disposés dans la vue de haut en bas.

enum QListView::LayoutMode

ConstanteValeurDescription
QListView::SinglePass0Les éléments sont affichés en une seule fois.
QListView::Batched1Les articles sont répartis par lots de batchSize.

Voir aussi « batchSize ».

enum QListView::Movement

ConstanteValeurDescription
QListView::Static0Les éléments ne peuvent pas être déplacés par l’utilisateur.
QListView::Free1L'utilisateur peut déplacer librement les éléments.
QListView::Snap2Les éléments s'alignent sur la grille spécifiée lorsqu'ils sont déplacés ; voir setGridSize().

enum QListView::ResizeMode

ConstanteValeurDescription
QListView::Fixed0Les éléments ne seront disposés que lors de la première affichage de la vue.
QListView::Adjust1Les éléments seront réorganisés à chaque fois que la vue sera redimensionnée.

enum QListView::ViewMode

ConstanteValeurDescription
QListView::ListMode0Les éléments sont disposés selon un flux « TopToBottom », avec une taille « Small » et un mouvement « Static »
QListView::IconMode1Les éléments sont disposés selon un flux « LeftToRight », avec une taille « Grande » et un mouvement « Libre »

Documentation sur les propriétés

batchSize : int

Cette propriété indique le nombre d'éléments affichés dans chaque lot si l'option « layoutMode » est définie sur « Batched ».

La valeur par défaut est 100.

Fonctions d’accès :

int batchSize() const
void setBatchSize(int batchSize)

flow : Flow

Cette propriété définit le sens dans lequel les éléments doivent s'afficher.

Si cette propriété est définie sur « LeftToRight », les éléments seront disposés de gauche à droite. Si la propriété « isWrapping » est définie sur « true », la disposition s'enroulera lorsqu'elle atteindra le bord droit de la zone visible. Si cette propriété est définie sur « TopToBottom », les éléments seront disposés à partir du haut de la zone visible et s'enrouleront lorsqu'ils atteindront le bas.

La définition de cette propriété lorsque la vue est visible entraînera un réagencement des éléments.

Par défaut, cette propriété est définie sur « TopToBottom ».

Fonctions d’accès :

QListView::Flow flow() const
void setFlow(QListView::Flow flow)

Voir également viewMode.

gridSize : QSize

Cette propriété définit la taille de la grille de mise en page

Cette propriété correspond à la taille de la grille dans laquelle les éléments sont disposés. La valeur par défaut est une taille nulle, ce qui signifie qu’il n’y a pas de grille et que la mise en page ne s’effectue pas selon une grille. Définir cette propriété sur une taille non nulle active la mise en page en grille. (Lorsqu’une mise en page en grille est active, la propriété ` spacing ` est ignorée.)

La définition de cette propriété lorsque la vue est visible entraîne un réagencement des éléments.

Fonctions d'accès :

QSize gridSize() const
void setGridSize(const QSize &size)

Voir également viewMode.

isWrapping : bool

Cette propriété détermine si la mise en page des éléments doit s'ajuster.

Cette propriété détermine si la disposition doit s'ajuster lorsqu'il n'y a plus d'espace disponible dans la zone visible. Le point à partir duquel la disposition s'ajuste dépend de la propriété « flow ».

La définition de cette propriété lorsque la vue est visible entraîne un réagencement des éléments.

Par défaut, cette propriété est définie sur « false ».

Fonctions d'accès :

bool isWrapping() const
void setWrapping(bool enable)

Voir également viewMode.

itemAlignment : Qt::Alignment

Cette propriété définit l'alignement de chaque élément dans sa cellule

Cette fonctionnalité n'est prise en charge que dans ListMode avec un flux de texte de type « TopToBottom » et lorsque le retour à la ligne automatique est activé. L'alignement par défaut est 0, ce qui signifie qu'un élément occupe entièrement sa cellule.

Fonctions d’accès :

Qt::Alignment itemAlignment() const
void setItemAlignment(Qt::Alignment alignment)

layoutMode : LayoutMode

détermine si la mise en page des éléments doit s'effectuer immédiatement ou être différée.

Cette propriété définit le mode de disposition des éléments. Lorsque le mode est « SinglePass » (par défaut), les éléments sont tous disposés en une seule fois. Lorsque le mode est « Batched », les éléments sont disposés par lots de batchSize éléments, au fur et à mesure du traitement des événements. Cela permet de visualiser et d’interagir instantanément avec les éléments visibles pendant que les autres sont en cours de disposition.

Fonctions d'accès :

QListView::LayoutMode layoutMode() const
void setLayoutMode(QListView::LayoutMode mode)

Voir également viewMode.

modelColumn : int

Cette propriété indique la colonne du modèle qui est visible

Par défaut, cette propriété contient la valeur 0, ce qui indique que la première colonne du modèle sera affichée.

Fonctions d'accès :

int modelColumn() const
void setModelColumn(int column)

movement : Movement

Cette propriété indique si les éléments peuvent être déplacés librement, s'ils sont alignés sur une grille ou s'ils ne peuvent pas être déplacés du tout.

Cette propriété détermine la manière dont l'utilisateur peut déplacer les éléments dans la vue. « Static » signifie que les éléments ne peuvent pas être déplacés par l'utilisateur. « Free » signifie que l'utilisateur peut glisser-déposer les éléments à n'importe quelle position dans la vue. « Snap » signifie que l'utilisateur peut glisser-déposer les éléments, mais uniquement vers les positions d'une grille imaginaire définie par la propriété « gridSize ».

La définition de cette propriété lorsque la vue est visible entraîne un réagencement des éléments.

Par défaut, cette propriété est définie sur « Static ».

Fonctions d'accès :

QListView::Movement movement() const
void setMovement(QListView::Movement movement)

Voir également gridSize, resizeMode et viewMode.

resizeMode : ResizeMode

Cette propriété détermine si les éléments sont réorganisés lorsque la taille de la vue est modifiée.

Si cette propriété est définie sur « Adjust », les éléments seront réorganisés lorsque la vue sera redimensionnée. Si la valeur est « Fixed », les éléments ne seront pas réorganisés lorsque la vue sera redimensionnée.

Par défaut, cette propriété est définie sur « Fixed ».

Fonctions d’accès :

QListView::ResizeMode resizeMode() const
void setResizeMode(QListView::ResizeMode mode)

Voir également movement, gridSize et viewMode.

selectionRectVisible : bool

si le rectangle de sélection doit être visible

Si cette propriété est définie sur « true », le rectangle de sélection est visible ; dans le cas contraire, il est masqué.

Remarque : le rectangle de sélection n'est visible que si le mode de sélection permet de sélectionner plusieurs éléments ; en d'autres termes, aucun rectangle de sélection n'est affiché si le mode de sélection est défini sur « QAbstractItemView::SingleSelection ».

Par défaut, cette propriété est définie sur « false ».

Fonctions d'accès :

bool isSelectionRectVisible() const
void setSelectionRectVisible(bool show)

spacing : int

Cette propriété définit l'espace autour des éléments dans la mise en page

Cette propriété correspond à la taille de l'espace vide qui entoure un élément dans la mise en page.

La définition de cette propriété lorsque la vue est visible entraîne un réagencement des éléments.

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

Fonctions d'accès :

int spacing() const
void setSpacing(int space)

Voir également viewMode.

uniformItemSizes : bool

Cette propriété indique si tous les éléments de la liste ont la même taille

Cette propriété ne doit être définie sur « true » que s'il est garanti que tous les éléments de la vue ont la même taille. Cela permet à la vue d'effectuer certaines optimisations à des fins de performances.

Par défaut, cette propriété est définie sur « false ».

Fonctions d'accès :

bool uniformItemSizes() const
void setUniformItemSizes(bool enable)

viewMode : ViewMode

Cette propriété définit le mode d'affichage de l'QListView.

Cette propriété modifie les autres propriétés non définies afin de les adapter au mode d’affichage défini. Les propriétés spécifiques à QListView qui ont déjà été définies ne seront pas modifiées, sauf si la méthode clearPropertyFlags() a été appelée.

La définition du mode d’affichage active ou désactive le glisser-déposer en fonction du mouvement sélectionné. Pour ListMode, le mouvement par défaut est Static (glisser-déposer désactivé) ; pour IconMode, le mouvement par défaut est Free (glisser-déposer activé).

Fonctions d’accès :

QListView::ViewMode viewMode() const
void setViewMode(QListView::ViewMode mode)

Voir également isWrapping, spacing, gridSize, flow, movement et resizeMode.

wordWrap : bool

Cette propriété définit la politique de retour à la ligne du texte de l'élément

Si cette propriété est définie sur « true », le texte de l'élément est renvoyé à la ligne si nécessaire aux points de coupure de mot ; dans le cas contraire, il n'est pas renvoyé à la ligne. Cette propriété est définie par défaut sur « false ».

Veuillez noter que même si le retour à la ligne est activé, la cellule ne sera pas agrandie pour faire de la place au texte. Elle affichera des points de suspension pour le texte qui ne peut pas être affiché, conformément à l'textElideMode de la vue.

Fonctions d'accès :

bool wordWrap() const
void setWordWrap(bool on)

Documentation des fonctions membres

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

Crée un nouveau QListView avec l'parent e spécifiée pour afficher un modèle. Utilisez setModel() pour définir le modèle.

[virtual noexcept] QListView::~QListView()

Ça gâche la vue.

void QListView::clearPropertyFlags()

Efface les indicateurs de propriété spécifiques à QListView. Voir viewMode.

Les propriétés héritées de ` QAbstractItemView ` ne sont pas concernées par ces indicateurs de propriété. Plus précisément, ` dragEnabled ` et ` acceptsDrops ` sont calculées par ` QListView ` lors de l’appel de ` setMovement()` ou ` setViewMode()`.

[override virtual protected] void QListView::currentChanged(const QModelIndex &current, const QModelIndex &previous)

Réimplémente : QAbstractItemView::currentChanged(const QModelIndex &current, const QModelIndex &previous).

[override virtual protected] void QListView::dataChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight, const QList<int> &roles = QList<int>())

Réimplémente : QAbstractItemView::dataChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight, const QList<int> &roles).

[override virtual protected] void QListView::dragLeaveEvent(QDragLeaveEvent *e)

Réimplémente : QAbstractItemView::dragLeaveEvent(QDragLeaveEvent *event).

[override virtual protected] void QListView::dragMoveEvent(QDragMoveEvent *e)

Réimplémente : QAbstractItemView::dragMoveEvent(QDragMoveEvent *event).

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

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

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

Réimplémente : QAbstractItemView::event(QEvent *event).

[override virtual protected] int QListView::horizontalOffset() const

Réimplémente : QAbstractItemView::horizontalOffset() const.

[override virtual] QModelIndex QListView::indexAt(const QPoint &p) const

Réimplémente : QAbstractItemView::indexAt(const QPoint &point) const.

[signal] void QListView::indexesMoved(const QModelIndexList &indexes)

Ce signal est émis lorsque les « indexes » spécifiés sont déplacés dans la vue.

[override virtual protected] void QListView::initViewItemOption(QStyleOptionViewItem *option) const

Réimplémente : QAbstractItemView::initViewItemOption(QStyleOptionViewItem *option) const.

[override virtual protected] bool QListView::isIndexHidden(const QModelIndex &index) const

Réimplémente : QAbstractItemView::isIndexHidden(const QModelIndex &index) const.

bool QListView::isRowHidden(int row) const

Renvoie « true » si l’ row est masquée ; sinon, renvoie « false ».

[override virtual protected] void QListView::mouseMoveEvent(QMouseEvent *e)

Réimplémente : ` QAbstractItemView::mouseMoveEvent(QMouseEvent *event)`.

[override virtual protected] void QListView::mouseReleaseEvent(QMouseEvent *e)

Réimplémente : QAbstractItemView::mouseReleaseEvent(QMouseEvent *event).

[override virtual protected] QModelIndex QListView::moveCursor(QAbstractItemView::CursorAction cursorAction, Qt::KeyboardModifiers modifiers)

Réimplémente : QAbstractItemView::moveCursor(QAbstractItemView::CursorAction cursorAction, Qt::KeyboardModifiers modifiers).

[override virtual protected] void QListView::paintEvent(QPaintEvent *e)

Réimplémente : QAbstractScrollArea::paintEvent(QPaintEvent *event).

[protected] QRect QListView::rectForIndex(const QModelIndex &index) const

Renvoie le rectangle de l'élément situé à la position index dans le modèle. Le rectangle est exprimé en coordonnées du contenu.

Voir également visualRect().

[override virtual protected] void QListView::resizeEvent(QResizeEvent *e)

Réimplémente : QAbstractItemView::resizeEvent(QResizeEvent *event).

[override virtual protected] void QListView::rowsAboutToBeRemoved(const QModelIndex &parent, int start, int end)

Réimplémente : QAbstractItemView::rowsAboutToBeRemoved(const QModelIndex &parent, int start, int end).

[override virtual protected] void QListView::rowsInserted(const QModelIndex &parent, int start, int end)

Réimplémente : QAbstractItemView::rowsInserted(const QModelIndex &parent, int start, int end).

[override virtual protected] void QListView::scrollContentsBy(int dx, int dy)

Réimplémente : QAbstractScrollArea::scrollContentsBy(int dx, int dy).

Faites défiler le contenu de la vue à l'aide de dx et dy.

[override virtual] void QListView::scrollTo(const QModelIndex &index, QAbstractItemView::ScrollHint hint = EnsureVisible)

Réimplémente : QAbstractItemView::scrollTo(const QModelIndex &index, QAbstractItemView::ScrollHint hint).

[override virtual protected] QModelIndexList QListView::selectedIndexes() const

Réimplémente : QAbstractItemView::selectedIndexes() const.

[override virtual protected] void QListView::selectionChanged(const QItemSelection &selected, const QItemSelection &deselected)

Réimplémente : QAbstractItemView::selectionChanged(const QItemSelection &selected, const QItemSelection &deselected).

[protected] void QListView::setPositionForIndex(const QPoint &position, const QModelIndex &index)

Définit la position de l'élément situé à l'adresse index dans le modèle sur l'adresse position. Si le mode de déplacement de la vue de liste est « Statique » ou si son mode d'affichage est « ListView », cette fonction n'aura aucun effet.

[override virtual] void QListView::setRootIndex(const QModelIndex &index)

Réimplémente : QAbstractItemView::setRootIndex(const QModelIndex &index).

void QListView::setRowHidden(int row, bool hide)

Si la valeur de « hide » est « true », l'row ion indiquée sera masquée ; dans le cas contraire, l'row ion sera affichée.

Voir également isRowHidden().

[override virtual protected] void QListView::setSelection(const QRect &rect, QItemSelectionModel::SelectionFlags command)

Réimplémente : QAbstractItemView::setSelection(const QRect &rect, QItemSelectionModel::SelectionFlags flags).

[override virtual protected] void QListView::startDrag(Qt::DropActions supportedActions)

Réimplémente : QAbstractItemView::startDrag(Qt::DropActions supportedActions).

[override virtual protected] void QListView::timerEvent(QTimerEvent *e)

Réimplémente : QAbstractItemView::timerEvent(QTimerEvent *event).

[override virtual protected] void QListView::updateGeometries()

Réimplémente : QAbstractItemView::updateGeometries().

[override virtual protected] int QListView::verticalOffset() const

Réimplémente : QAbstractItemView::verticalOffset() const.

[override virtual protected] QSize QListView::viewportSizeHint() const

Réimplémente : QAbstractItemView::viewportSizeHint() const.

[override virtual] QRect QListView::visualRect(const QModelIndex &index) const

Réimplémente : QAbstractItemView::visualRect(const QModelIndex &index) const.

[override virtual protected] QRegion QListView::visualRegionForSelection(const QItemSelection &selection) const

Réimplémente : ` QAbstractItemView::visualRegionForSelection(const QItemSelection &selection) const`.

Depuis la version 4.7, la région renvoyée ne contient que les rectangles qui coupent (ou sont inclus dans) la fenêtre d'affichage.

[override virtual protected] void QListView::wheelEvent(QWheelEvent *e)

Réimplémente : QAbstractScrollArea::wheelEvent(QWheelEvent *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.