Sur cette page

QAbstractItemView Class

La classe `QAbstractItemView` fournit les fonctionnalités de base des classes de vue d'éléments. En savoir plus...

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

QColumnView, QHeaderView, QListView, QTableView, et QTreeView

Types publics

enum DragDropMode { NoDragDrop, DragOnly, DropOnly, DragDrop, InternalMove }
enum EditTrigger { NoEditTriggers, CurrentChanged, DoubleClicked, SelectedClicked, EditKeyPressed, …, AllEditTriggers }
flags EditTriggers
enum ScrollHint { EnsureVisible, PositionAtTop, PositionAtBottom, PositionAtCenter }
enum ScrollMode { ScrollPerItem, ScrollPerPixel }
enum SelectionBehavior { SelectItems, SelectRows, SelectColumns }
enum SelectionMode { SingleSelection, ContiguousSelection, ExtendedSelection, MultiSelection, NoSelection }

Propriétés

Fonctions publiques

QAbstractItemView(QWidget *parent = nullptr)
virtual ~QAbstractItemView()
bool alternatingRowColors() const
int autoScrollMargin() const
void closePersistentEditor(const QModelIndex &index)
QModelIndex currentIndex() const
Qt::DropAction defaultDropAction() const
QAbstractItemView::DragDropMode dragDropMode() const
bool dragDropOverwriteMode() const
bool dragEnabled() const
QAbstractItemView::EditTriggers editTriggers() const
bool hasAutoScroll() const
QAbstractItemView::ScrollMode horizontalScrollMode() const
QSize iconSize() const
virtual QModelIndex indexAt(const QPoint &point) const = 0
QWidget *indexWidget(const QModelIndex &index) const
bool isPersistentEditorOpen(const QModelIndex &index) const
QAbstractItemDelegate *itemDelegate() const
QAbstractItemDelegate *itemDelegateForColumn(int column) const
(since 6.0) virtual QAbstractItemDelegate *itemDelegateForIndex(const QModelIndex &index) const
QAbstractItemDelegate *itemDelegateForRow(int row) const
virtual void keyboardSearch(const QString &search)
Qt::MatchFlags keyboardSearchFlags() const
QAbstractItemModel *model() const
void openPersistentEditor(const QModelIndex &index)
void resetHorizontalScrollMode()
void resetVerticalScrollMode()
QModelIndex rootIndex() const
virtual void scrollTo(const QModelIndex &index, QAbstractItemView::ScrollHint hint = EnsureVisible) = 0
QAbstractItemView::SelectionBehavior selectionBehavior() const
QAbstractItemView::SelectionMode selectionMode() const
QItemSelectionModel *selectionModel() const
void setAlternatingRowColors(bool enable)
void setAutoScroll(bool enable)
void setAutoScrollMargin(int margin)
void setDefaultDropAction(Qt::DropAction dropAction)
void setDragDropMode(QAbstractItemView::DragDropMode behavior)
void setDragDropOverwriteMode(bool overwrite)
void setDragEnabled(bool enable)
void setDropIndicatorShown(bool enable)
void setEditTriggers(QAbstractItemView::EditTriggers triggers)
void setHorizontalScrollMode(QAbstractItemView::ScrollMode mode)
void setIconSize(const QSize &size)
void setIndexWidget(const QModelIndex &index, QWidget *widget)
void setItemDelegate(QAbstractItemDelegate *delegate)
void setItemDelegateForColumn(int column, QAbstractItemDelegate *delegate)
void setItemDelegateForRow(int row, QAbstractItemDelegate *delegate)
void setKeyboardSearchFlags(Qt::MatchFlags searchFlags)
virtual void setModel(QAbstractItemModel *model)
void setSelectionBehavior(QAbstractItemView::SelectionBehavior behavior)
void setSelectionMode(QAbstractItemView::SelectionMode mode)
virtual void setSelectionModel(QItemSelectionModel *selectionModel)
void setTabKeyNavigation(bool enable)
void setTextElideMode(Qt::TextElideMode mode)
void setUpdateThreshold(int threshold)
void setVerticalScrollMode(QAbstractItemView::ScrollMode mode)
bool showDropIndicator() const
virtual int sizeHintForColumn(int column) const
QSize sizeHintForIndex(const QModelIndex &index) const
virtual int sizeHintForRow(int row) const
bool tabKeyNavigation() const
Qt::TextElideMode textElideMode() const
int updateThreshold() const
QAbstractItemView::ScrollMode verticalScrollMode() const
virtual QRect visualRect(const QModelIndex &index) const = 0

Fonctions publiques réimplémentées

virtual QVariant inputMethodQuery(Qt::InputMethodQuery query) const override

Slots publics

void clearSelection()
void edit(const QModelIndex &index)
virtual void reset()
void scrollToBottom()
void scrollToTop()
virtual void selectAll()
void setCurrentIndex(const QModelIndex &index)
virtual void setRootIndex(const QModelIndex &index)
void update(const QModelIndex &index)

Signaux

void activated(const QModelIndex &index)
void clicked(const QModelIndex &index)
void doubleClicked(const QModelIndex &index)
void entered(const QModelIndex &index)
void iconSizeChanged(const QSize &size)
void pressed(const QModelIndex &index)
void viewportEntered()

Types protégés

enum CursorAction { MoveUp, MoveDown, MoveLeft, MoveRight, MoveHome, …, MovePrevious }
enum DropIndicatorPosition { OnItem, AboveItem, BelowItem, OnViewport }
enum State { NoState, DraggingState, DragSelectingState, EditingState, ExpandingState, …, AnimatingState }

Fonctions protégées

QPoint dirtyRegionOffset() const
QAbstractItemView::DropIndicatorPosition dropIndicatorPosition() const
virtual bool edit(const QModelIndex &index, QAbstractItemView::EditTrigger trigger, QEvent *event)
void executeDelayedItemsLayout()
virtual int horizontalOffset() const = 0
(since 6.0) virtual void initViewItemOption(QStyleOptionViewItem *option) const
virtual bool isIndexHidden(const QModelIndex &index) const = 0
virtual QModelIndex moveCursor(QAbstractItemView::CursorAction cursorAction, Qt::KeyboardModifiers modifiers) = 0
void scheduleDelayedItemsLayout()
void scrollDirtyRegion(int dx, int dy)
virtual QModelIndexList selectedIndexes() const
virtual QItemSelectionModel::SelectionFlags selectionCommand(const QModelIndex &index, const QEvent *event = nullptr) const
void setDirtyRegion(const QRegion &region)
virtual void setSelection(const QRect &rect, QItemSelectionModel::SelectionFlags flags) = 0
void setState(QAbstractItemView::State state)
virtual void startDrag(Qt::DropActions supportedActions)
QAbstractItemView::State state() const
virtual int verticalOffset() const = 0
virtual QRegion visualRegionForSelection(const QItemSelection &selection) const = 0

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

virtual void dragEnterEvent(QDragEnterEvent *event) override
virtual void dragLeaveEvent(QDragLeaveEvent *event) override
virtual void dragMoveEvent(QDragMoveEvent *event) override
virtual void dropEvent(QDropEvent *event) override
virtual bool event(QEvent *event) override
virtual bool eventFilter(QObject *object, QEvent *event) override
virtual void focusInEvent(QFocusEvent *event) override
virtual bool focusNextPrevChild(bool next) override
virtual void focusOutEvent(QFocusEvent *event) override
virtual void inputMethodEvent(QInputMethodEvent *event) override
virtual void keyPressEvent(QKeyEvent *event) override
virtual void mouseDoubleClickEvent(QMouseEvent *event) override
virtual void mouseMoveEvent(QMouseEvent *event) override
virtual void mousePressEvent(QMouseEvent *event) override
virtual void mouseReleaseEvent(QMouseEvent *event) override
virtual void resizeEvent(QResizeEvent *event) override
virtual void timerEvent(QTimerEvent *event) override
virtual bool viewportEvent(QEvent *event) override
virtual QSize viewportSizeHint() const override

Slots protégés

virtual void closeEditor(QWidget*editor, QAbstractItemDelegate::EndEditHint hint)
virtual void commitData(QWidget*editor)
virtual void currentChanged(const QModelIndex&current, const QModelIndex&previous)
virtual void dataChanged(const QModelIndex&topLeft, const QModelIndex&bottomRight, const QList<int>&roles = QList<int>())
virtual void editorDestroyed(QObject*editor)
virtual void rowsAboutToBeRemoved(const QModelIndex&parent, int start, int end)
virtual void rowsInserted(const QModelIndex&parent, int start, int end)
virtual void selectionChanged(const QItemSelection&selected, const QItemSelection&deselected)
virtual void updateGeometries()

Description détaillée

La classe `QAbstractItemView` est la classe de base de toutes les vues standard qui utilisent un ` QAbstractItemModel`. `QAbstractItemView` est une classe abstraite et ne peut pas être instanciée en tant que telle. Elle fournit une interface standard permettant d'interagir avec les modèles via le mécanisme des signaux et des slots, ce qui permet aux sous-classes de se tenir à jour des modifications apportées à leurs modèles. Cette classe offre une prise en charge standard de la navigation au clavier et à la souris, du défilement de la fenêtre d'affichage, de la modification des éléments et des sélections. La navigation au clavier implémente les fonctionnalités suivantes :

TouchesFonctionnalité
Touches fléchéesPermet de changer d’élément et de le sélectionner.
Ctrl + touches fléchéesPermet de passer à l'élément suivant sans le sélectionner.
Maj + touches fléchéesPermet de passer à l'élément suivant et de le sélectionner. Le ou les éléments précédemment sélectionnés ne sont pas désélectionnés.
Ctrl + EspaceActive ou désactive la sélection de l'élément actuel.
Tab/Retour TabPasse à l'élément suivant/précédent.
Début/FinSélectionne le premier ou le dernier élément du modèle.
Page précédente/Page suivanteFait défiler les lignes affichées vers le haut ou vers le bas en fonction du nombre de lignes visibles dans la vue.
Ctrl+ASélectionne tous les éléments du modèle.

Notez que le tableau ci-dessus part du principe que l'selection mode e autorise ces opérations. Par exemple, vous ne pouvez pas sélectionner d'éléments si le mode de sélection est « QAbstractItemView::NoSelection ».

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

Les classes de vue qui héritent de QAbstractItemView n'ont qu'à implémenter leurs propres fonctionnalités spécifiques à la vue, telles que le tracé des éléments, le retour de leur géométrie, la recherche d'éléments, etc.

QAbstractItemView fournit des slots communs tels que edit() et setCurrentIndex(). De nombreux slots protégés sont également fournis, notamment dataChanged(), rowsInserted(), rowsAboutToBeRemoved(), selectionChanged() et currentChanged().

L'élément racine est renvoyé par rootIndex(), et l'élément actuel par currentIndex(). Pour vérifier qu'un élément est visible, utilisez scrollTo().

Certaines fonctions de `QAbstractItemView` concernent le défilement, par exemple ` setHorizontalScrollMode()` et ` setVerticalScrollMode()`. Pour définir la plage des barres de défilement, vous pouvez, par exemple, réimplémenter la fonction ` resizeEvent()` de la vue :

void MyView::resizeEvent(QResizeEvent *event) {
    horizontalScrollBar()->setRange(0, realWidth - width());
    ...
}

Notez que la plage n'est mise à jour qu'une fois le widget affiché.

Plusieurs autres fonctions concernent le contrôle de la sélection ; par exemple setSelectionMode() et setSelectionBehavior(). Cette classe fournit un modèle de sélection par défaut (selectionModel()), mais celui-ci peut être remplacé en utilisant setSelectionModel() avec une instance de QItemSelectionModel.

Pour un contrôle total sur l’affichage et la modification des éléments, vous pouvez spécifier un délégué à l’aide de ` setItemDelegate()`.

QAbstractItemView fournit de nombreuses fonctions protégées. Certaines concernent la modification, par exemple edit() et commitData(), tandis que d’autres sont des gestionnaires d’événements clavier et souris.

Remarque : si vous héritez de QAbstractItemView et que vous souhaitez mettre à jour le contenu de la fenêtre d’affichage, vous devez utiliser viewport->update() plutôt que update(), car toutes les opérations de dessin s’effectuent sur la fenêtre d’affichage.

Voir également Classes de vue, Programmation modèle/vue et QAbstractItemModel.

Documentation sur les types de membres

enum QAbstractItemView::CursorAction

Cette énumération décrit les différentes façons de naviguer entre les éléments,

ConstanteValeurDescription
QAbstractItemView::MoveUp0Passe à l'élément situé au-dessus de l'élément actuel.
QAbstractItemView::MoveDown1Passe à l'élément situé en dessous de l'élément actuel.
QAbstractItemView::MoveLeft2Se déplacer vers l'élément situé à gauche de l'élément actuel.
QAbstractItemView::MoveRight3Se déplacer vers l'élément situé à droite de l'élément actuel.
QAbstractItemView::MoveHome4Se déplacer vers l'élément situé dans le coin supérieur gauche.
QAbstractItemView::MoveEnd5Aller à l'élément situé dans le coin inférieur droit.
QAbstractItemView::MovePageUp6Remontez d'une page au-dessus de l'élément actuel.
QAbstractItemView::MovePageDown7Passer à la page suivante après l'élément actuel.
QAbstractItemView::MoveNext8Aller à l'élément suivant l'élément actuel.
QAbstractItemView::MovePrevious9Aller à l’élément précédant l’élément actuel.

Voir aussi moveCursor().

enum QAbstractItemView::DragDropMode

Décrit les différents événements de glisser-déposer sur lesquels la vue peut agir. Par défaut, la vue ne prend pas en charge le glisser-déposer (NoDragDrop).

ConstanteValeurDescription
QAbstractItemView::NoDragDrop0Ne prend pas en charge le glisser-déposer.
QAbstractItemView::DragOnly1La vue prend en charge le glisser-déposer de ses propres éléments
QAbstractItemView::DropOnly2La vue accepte les déposes
QAbstractItemView::DragDrop3La vue prend en charge à la fois le glisser-déposer
QAbstractItemView::InternalMove4La vue n'accepte les opérations de déplacement (etnon de copie) qu'à partir d'elle-même.

Notez que le modèle utilisé doit prendre en charge les opérations de glisser-déposer.

Voir également setDragDropMode() et Utilisation du glisser-déposer avec les vues d'éléments.

enum QAbstractItemView::DropIndicatorPosition

Cette énumération indique la position de l'indicateur de dépôt par rapport à l'index, à l'emplacement actuel de la souris :

ConstanteValeurDescription
QAbstractItemView::OnItem0L'élément sera déposé sur l'index.
QAbstractItemView::AboveItem1L'élément sera déposé au-dessus de l'index.
QAbstractItemView::BelowItem2L’élément sera déposé en dessous de l’index.
QAbstractItemView::OnViewport3L'élément sera déposé sur une zone de la fenêtre d'affichage ne contenant aucun élément. La manière dont chaque vue gère les éléments déposés dans la fenêtre d'affichage dépend du comportement du modèle sous-jacent utilisé.

enum QAbstractItemView::EditTrigger
flags QAbstractItemView::EditTriggers

Cette énumération décrit les actions qui déclenchent la modification d'un élément.

ConstanteValeurDescription
QAbstractItemView::NoEditTriggers0Aucune modification possible.
QAbstractItemView::CurrentChanged1La modification commence dès que l'élément actuel change.
QAbstractItemView::DoubleClicked2La modification commence lorsqu'on double-clique sur un élément.
QAbstractItemView::SelectedClicked4La modification commence lorsque l'on clique sur un élément déjà sélectionné.
QAbstractItemView::EditKeyPressed8La modification commence lorsque la touche de modification de la plateforme est enfoncée sur un élément.
QAbstractItemView::AnyKeyPressed16La modification commence dès qu'une touche est enfoncée sur un élément.
QAbstractItemView::AllEditTriggers31L'édition démarre pour toutes les actions ci-dessus.

Le type EditTriggers est un typedef pour QFlags<EditTrigger>. Il stocke une combinaison OU de valeurs EditTrigger.

enum QAbstractItemView::ScrollHint

ConstanteValeurDescription
QAbstractItemView::EnsureVisible0Faire défiler pour s'assurer que l'élément est visible.
QAbstractItemView::PositionAtTop1Faites défiler pour positionner l'élément en haut de la fenêtre d'affichage.
QAbstractItemView::PositionAtBottom2Faites défiler pour positionner l'élément au bas de la fenêtre d'affichage.
QAbstractItemView::PositionAtCenter3Faites défiler pour positionner l'élément au centre de la fenêtre d'affichage.

enum QAbstractItemView::ScrollMode

Décrit le comportement de la barre de défilement. Lorsque le mode de défilement est défini sur « ScrollPerPixel », la taille d’un pas s’ajuste automatiquement, sauf si elle a été définie explicitement à l’aide de la fonction ` setSingleStep()`. L’ajustement automatique peut être rétabli en définissant la taille d’un pas sur -1.

ConstanteValeurDescription
QAbstractItemView::ScrollPerItem0La vue fera défiler le contenu élément par élément.
QAbstractItemView::ScrollPerPixel1La vue fera défiler le contenu pixel par pixel.

enum QAbstractItemView::SelectionBehavior

ConstanteValeurDescription
QAbstractItemView::SelectItems0Sélection d'éléments individuels.
QAbstractItemView::SelectRows1Sélection des lignes uniquement.
QAbstractItemView::SelectColumns2Sélection des colonnes uniquement.

enum QAbstractItemView::SelectionMode

Cette énumération indique comment la vue réagit aux sélections de l'utilisateur :

ConstanteValeurDescription
QAbstractItemView::SingleSelection1Lorsque l'utilisateur sélectionne un élément, tout élément déjà sélectionné est désélectionné. L'utilisateur peut désélectionner l'élément sélectionné en appuyant sur la touche Ctrl tout en cliquant sur cet élément.
QAbstractItemView::ContiguousSelection4Lorsque l'utilisateur sélectionne un élément de la manière habituelle, la sélection est effacée et le nouvel élément est sélectionné. Cependant, si l'utilisateur appuie sur la touche Maj tout en cliquant sur un élément, tous les éléments situés entre l'élément actuel et l'élément cliqué sont sélectionnés ou désélectionnés, selon l'état de l'élément cliqué.
QAbstractItemView::ExtendedSelection3Lorsque l'utilisateur sélectionne un élément de la manière habituelle, la sélection est effacée et le nouvel élément est sélectionné. Cependant, si l'utilisateur appuie sur la touche Ctrl tout en cliquant sur un élément, l'élément sur lequel il a cliqué est activé ou désactivé et tous les autres éléments restent inchangés. Si l'utilisateur appuie sur la touche Maj tout en cliquant sur un élément, tous les éléments situés entre l'élément actuel et l'élément cliqué sont sélectionnés ou désélectionnés, selon l'état de l'élément cliqué. Il est possible de sélectionner plusieurs éléments en faisant glisser la souris dessus.
QAbstractItemView::MultiSelection2Lorsque l'utilisateur sélectionne un élément de la manière habituelle, l'état de sélection de cet élément est inversé et les autres éléments ne sont pas modifiés. Il est possible d'inverser la sélection de plusieurs éléments en faisant glisser la souris dessus.
QAbstractItemView::NoSelection0Les éléments ne peuvent pas être sélectionnés.

Les modes les plus couramment utilisés sont SingleSelection et ExtendedSelection.

enum QAbstractItemView::State

Décrit les différents états que peut prendre la vue. Cela ne présente généralement d'intérêt que lorsque vous réimplémentez votre propre vue.

ConstanteValeurDescription
QAbstractItemView::NoState0Il s'agit de l'état par défaut.
QAbstractItemView::DraggingState1L'utilisateur fait glisser des éléments.
QAbstractItemView::DragSelectingState2L'utilisateur sélectionne des éléments.
QAbstractItemView::EditingState3L'utilisateur modifie un élément dans l'éditeur de widget.
QAbstractItemView::ExpandingState4L'utilisateur ouvre une branche d'éléments.
QAbstractItemView::CollapsingState5L'utilisateur ferme une branche d'éléments.
QAbstractItemView::AnimatingState6La vue de l'élément exécute une animation.

Documentation sur les propriétés

alternatingRowColors : bool

Cette propriété détermine s’il faut dessiner l’arrière-plan en alternant les couleurs

Si cette propriété est définie sur « true », l’arrière-plan de l’élément sera dessiné en utilisant les couleurs « QPalette::Base » et « QPalette::AlternateBase » ; sinon, l’arrière-plan sera dessiné en utilisant la couleur « QPalette::Base ».

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

Fonctions d’accès :

bool alternatingRowColors() const
void setAlternatingRowColors(bool enable)

autoScroll : bool

Cette propriété indique si le défilement automatique lors des événements de déplacement par glissement est activé

Si cette propriété est définie sur true (valeur par défaut), l'QAbstractItemView fait défiler automatiquement le contenu de la vue lorsque l'utilisateur effectue un glissement à moins de 16 pixels du bord de la fenêtre d'affichage. Si l'élément actif change, la vue défile automatiquement pour garantir que l'élément actif soit entièrement visible.

Cette propriété ne fonctionne que si la fenêtre d’affichage accepte les déposes. Le défilement automatique est désactivé en définissant cette propriété sur « false ».

Fonctions d’accès :

bool hasAutoScroll() const
void setAutoScroll(bool enable)

autoScrollMargin : int

Cette propriété définit la taille de la zone à partir de laquelle le défilement automatique est déclenché

Cette propriété contrôle la taille de la zone située au bord de la fenêtre d'affichage qui déclenche le défilement automatique. La valeur par défaut est de 16 pixels.

Fonctions d’accès :

int autoScrollMargin() const
void setAutoScrollMargin(int margin)

defaultDropAction : Qt::DropAction

Cette propriété contient l'action de dépose qui sera utilisée par défaut dans la méthode `QAbstractItemView::drag()`.

Si cette propriété n'est pas définie, l'action de dépôt est CopyAction lorsque les actions prises en charge supportent CopyAction.

Fonctions d'accès :

Qt::DropAction defaultDropAction() const
void setDefaultDropAction(Qt::DropAction dropAction)

Voir également showDropIndicator et dragDropOverwriteMode.

dragDropMode : DragDropMode

Cette propriété contient l'événement « glisser-déposer » sur lequel la vue va réagir

Fonctions d'accès :

QAbstractItemView::DragDropMode dragDropMode() const
void setDragDropMode(QAbstractItemView::DragDropMode behavior)

Voir également showDropIndicator et dragDropOverwriteMode.

dragDropOverwriteMode : bool

Cette propriété définit le comportement de la vue en matière de glisser-déposer

Si sa valeur est « true », les données sélectionnées écraseront les données de l'élément existant lorsqu'elles seront déposées, tandis que le déplacement des données effacera l'élément. Si sa valeur est « false », les données sélectionnées seront insérées en tant que nouvel élément lorsqu'elles seront déposées. Lorsque les données sont déplacées, l'élément est également supprimé.

La valeur par défaut est « false », comme dans les sous-classes « QListView » et « QTreeView ». Dans la sous-classe « QTableView », en revanche, la propriété a été définie sur « true ».

Remarque : cela n’a pas pour but d’empêcher le remplacement d’éléments. L’implémentation de la méthode flags() par le modèle devrait s’en charger en ne renvoyant pas Qt::ItemIsDropEnabled.

Fonctions d'accès :

bool dragDropOverwriteMode() const
void setDragDropOverwriteMode(bool overwrite)

Voir également dragDropMode.

dragEnabled : bool

Cette propriété indique si la vue prend en charge le glissement de ses propres éléments

Fonctions d’accès :

bool dragEnabled() const
void setDragEnabled(bool enable)

Voir également showDropIndicator, DragDropMode, dragDropOverwriteMode et acceptDrops.

editTriggers : EditTriggers

Cette propriété détermine les actions qui déclenchent la modification d'un élément

Cette propriété est une sélection d'indicateurs définis par EditTrigger, combinés à l'aide de l'opérateur OU. La vue ne lancera la modification d'un élément que si l'action effectuée est définie dans cette propriété.

La valeur par défaut est :

Fonctions d'accès :

QAbstractItemView::EditTriggers editTriggers() const
void setEditTriggers(QAbstractItemView::EditTriggers triggers)

horizontalScrollMode : ScrollMode

la manière dont la vue fait défiler son contenu horizontalement

Cette propriété contrôle la manière dont la vue fait défiler son contenu horizontalement. Le défilement peut s'effectuer soit pixel par pixel, soit élément par élément. Sa valeur par défaut est définie dans le style via l'indicateur de style « QStyle::SH_ItemView_ScrollMode ».

Fonctions d'accès :

QAbstractItemView::ScrollMode horizontalScrollMode() const
void setHorizontalScrollMode(QAbstractItemView::ScrollMode mode)
void resetHorizontalScrollMode()

iconSize : QSize

Cette propriété contient la taille des icônes des éléments

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

Fonctions d'accès :

QSize iconSize() const
void setIconSize(const QSize &size)

Signal de notification :

void iconSizeChanged(const QSize &size)

[since 6.11] keyboardSearchFlags : Qt::MatchFlags

Cette propriété détermine la manière dont l'implémentation par défaut de la méthode ` keyboardSearch()` compare la chaîne de caractères fournie aux données du modèle.

La valeur par défaut est ` Qt::MatchStartsWith|Qt::MatchWrap`.

Cette énumération a été introduite dans Qt 6.11.

Fonctions d'accès :

Qt::MatchFlags keyboardSearchFlags() const
void setKeyboardSearchFlags(Qt::MatchFlags searchFlags)

Voir également ` keyboardSearch()` et ` QAbstractItemModel::match()`.

selectionBehavior : SelectionBehavior

Cette propriété détermine le comportement de sélection utilisé par la vue

Cette propriété indique si les sélections s'effectuent au niveau d'éléments individuels, de lignes ou de colonnes.

Fonctions d'accès :

QAbstractItemView::SelectionBehavior selectionBehavior() const
void setSelectionBehavior(QAbstractItemView::SelectionBehavior behavior)

Voir également SelectionMode et SelectionBehavior.

selectionMode : SelectionMode

Cette propriété détermine le mode de sélection utilisé par la vue

Cette propriété détermine si l'utilisateur peut sélectionner un ou plusieurs éléments et, en cas de sélection de plusieurs éléments, si la sélection doit nécessairement former une plage continue d'éléments.

Fonctions d'accès :

QAbstractItemView::SelectionMode selectionMode() const
void setSelectionMode(QAbstractItemView::SelectionMode mode)

Voir également SelectionMode et SelectionBehavior.

showDropIndicator : bool

Cette propriété détermine si l'indicateur de dépôt s'affiche lors du glissement et du dépôt d'éléments.

Fonctions d'accès :

bool showDropIndicator() const
void setDropIndicatorShown(bool enable)

Voir également dragEnabled, DragDropMode, dragDropOverwriteMode et acceptDrops.

tabKeyNavigation : bool

Cette propriété indique si la navigation entre les éléments à l'aide des touches Tab et Retour arrière est activée.

Fonctions d'accès :

bool tabKeyNavigation() const
void setTabKeyNavigation(bool enable)

textElideMode : Qt::TextElideMode

Cette propriété détermine la position des « ... » dans le texte tronqué.

La valeur par défaut pour toutes les vues d'éléments est Qt::ElideRight.

Fonctions d'accès :

Qt::TextElideMode textElideMode() const
void setTextElideMode(Qt::TextElideMode mode)

[since 6.9] updateThreshold : int

Cette propriété contient le nombre d'index modifiés permettant de déclencher directement une mise à jour complète de la vue dans la fonction dataChanged().

L'algorithme implémenté dans ` dataChanged()` tente de limiter au maximum les mises à jour complètes de la vue en déterminant si les index modifiés sont visibles ou non. Pour les modèles très volumineux, comportant de nombreuses modifications importantes, cette opération peut prendre plus de temps que la mise à jour elle-même, ce qui s'avère contre-productif. Cette propriété permet de contrôler l’algorithme afin qu’il ignore la vérification et déclenche directement une mise à jour complète lorsque le nombre d’index modifiés dépasse la valeur indiquée.

La valeur par défaut est 200.

Cette énumération a été introduite dans Qt 6.9.

Fonctions d’accès :

int updateThreshold() const
void setUpdateThreshold(int threshold)

Voir également ` dataChanged()`.

verticalScrollMode : ScrollMode

la manière dont la vue fait défiler son contenu verticalement

Cette propriété contrôle la manière dont la vue fait défiler son contenu verticalement. Le défilement peut s'effectuer soit pixel par pixel, soit élément par élément. Sa valeur par défaut est définie par le style via l'indicateur de style « QStyle::SH_ItemView_ScrollMode ».

Fonctions d’accès :

QAbstractItemView::ScrollMode verticalScrollMode() const
void setVerticalScrollMode(QAbstractItemView::ScrollMode mode)
void resetVerticalScrollMode()

Documentation des fonctions membres

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

Crée une vue d'élément abstraite à partir de l'parent on fournie.

[virtual noexcept] QAbstractItemView::~QAbstractItemView()

Ça gâche le paysage.

[signal] void QAbstractItemView::activated(const QModelIndex &index)

Ce signal est émis lorsque l'élément spécifié par index est activé par l'utilisateur. La manière d'activer les éléments dépend de la plate-forme ; par exemple, en cliquant une ou deux fois sur l'élément, ou en appuyant sur la touche Retour ou Entrée lorsque l'élément est sélectionné.

Voir également clicked(), doubleClicked(), entered() et pressed().

[slot] void QAbstractItemView::clearSelection()

Désélectionne tous les éléments sélectionnés. L'index actuel ne sera pas modifié.

Voir également setSelection() et selectAll().

[signal] void QAbstractItemView::clicked(const QModelIndex &index)

Ce signal est émis lorsqu'on clique avec le bouton gauche de la souris. L'élément sur lequel la souris a été cliquée est spécifié par index. Le signal n'est émis que lorsque l'index est valide.

Voir également activated(), doubleClicked(), entered() et pressed().

[virtual protected slot] void QAbstractItemView::closeEditor(QWidget *editor, QAbstractItemDelegate::EndEditHint hint)

Ferme l'editor donné et le libère. L'hint permet de spécifier comment la vue doit réagir à la fin de l'opération d'édition. Par exemple, l' peut indiquer que l'élément suivant de la vue doit être ouvert pour modification.

Voir également edit() et commitData().

void QAbstractItemView::closePersistentEditor(const QModelIndex &index)

Ferme l'éditeur persistant correspondant à l'élément situé à l'adresse index.

Voir également openPersistentEditor() et isPersistentEditorOpen().

[virtual protected slot] void QAbstractItemView::commitData(QWidget *editor)

Valider les données de la table « editor » dans le modèle.

Voir aussi closeEditor().

[virtual protected slot] void QAbstractItemView::currentChanged(const QModelIndex &current, const QModelIndex &previous)

Cet emplacement est appelé lorsqu'un nouvel élément devient l'élément actif. L'élément actif précédent est spécifié par l'index « previous », et le nouvel élément par l'index « current ».

Si vous souhaitez en savoir plus sur les modifications apportées aux éléments, consultez le signal dataChanged().

QModelIndex QAbstractItemView::currentIndex() const

Renvoie l'index du modèle de l'élément actuel.

Voir aussi setCurrentIndex().

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

Cet événement est déclenché lorsque des éléments dont l'roles est spécifiée sont modifiés dans le modèle. Les éléments modifiés sont ceux compris entre topLeft et bottomRight inclus. Si un seul élément est modifié, topLeft == bottomRight.

L’ roles, qui a été modifiée, peut être soit un conteneur vide (ce qui signifie que tout a changé), soit un conteneur non vide contenant le sous-ensemble des rôles qui ont été modifiés.

Remarque : la variable ` Qt::ToolTipRole ` n’est pas prise en compte par la fonction `dataChanged()` dans les vues fournies par Qt.

[protected] QPoint QAbstractItemView::dirtyRegionOffset() const

Renvoie l'offset des zones modifiées dans la vue.

Si vous utilisez ` scrollDirtyRegion()` et implémentez une méthode ` paintEvent()` dans une sous-classe de ` QAbstractItemView`, vous devez décaler la zone indiquée par l'événement de dessin en fonction du décalage renvoyé par cette fonction.

Voir également scrollDirtyRegion() et setDirtyRegion().

[signal] void QAbstractItemView::doubleClicked(const QModelIndex &index)

Ce signal est émis lorsqu'on effectue un double-clic avec la souris. L'élément sur lequel le double-clic a été effectué est spécifié par index. Le signal n'est émis que si l'index est valide.

Voir également clicked() et activated().

[override virtual protected] void QAbstractItemView::dragEnterEvent(QDragEnterEvent *event)

Réimplémente : QAbstractScrollArea::dragEnterEvent(QDragEnterEvent *event).

Cette fonction est appelée avec l'event fourni lorsqu'une opération de glisser-déposer entre dans le widget. Si le glissement se fait au-dessus d'un emplacement de dépôt valide (par exemple, au-dessus d'un élément acceptant les dépôts), l'événement est accepté ; sinon, il est ignoré.

Voir également dropEvent() et startDrag().

[override virtual protected] void QAbstractItemView::dragLeaveEvent(QDragLeaveEvent *event)

Réimplémentation de : ` QAbstractScrollArea::dragLeaveEvent(QDragLeaveEvent *event)`.

Cette fonction est appelée lorsque l'élément en cours de glissement quitte la vue. Le paramètre event décrit l'état de l'opération de glisser-déposer.

[override virtual protected] void QAbstractItemView::dragMoveEvent(QDragMoveEvent *event)

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

Cette fonction est appelée en continu avec l'event fourni pendant une opération de glisser-déposer sur le widget. Elle peut entraîner le défilement de la vue si, par exemple, l'utilisateur fait glisser une sélection vers le bord droit ou inférieur de la vue. Dans ce cas, l'événement sera accepté ; sinon, il sera ignoré.

Voir également ` dropEvent()` et ` startDrag()`.

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

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

Cette fonction est appelée avec l'event fourni lorsqu'un événement de dépôt se produit sur le widget. Si le modèle accepte la position de l'événement, celui-ci est accepté ; sinon, il est ignoré.

Voir également startDrag().

[protected] QAbstractItemView::DropIndicatorPosition QAbstractItemView::dropIndicatorPosition() const

Renvoie la position de l'indicateur de dépôt par rapport à l'élément le plus proche.

[slot] void QAbstractItemView::edit(const QModelIndex &index)

Lance la modification de l'élément correspondant à l'index e fournie, si celui-ci est modifiable.

Notez que cette fonction ne modifie pas l’index actuel. Étant donné que l’index actuel définit les éléments suivant et précédent à modifier, les utilisateurs peuvent constater que la navigation au clavier ne fonctionne pas comme prévu. Pour garantir un comportement de navigation cohérent, appelez la fonction setCurrentIndex() avant cette fonction, en lui passant le même index de modèle.

Remarque : ce slot est surchargé. Pour vous connecter à ce slot :

// Connect using qOverload:
connect(sender, &SenderClass::signal,
        abstractItemView, qOverload(&QAbstractItemView::edit));

// Or using a lambda as wrapper:
connect(sender, &SenderClass::signal,
        abstractItemView, [receiver = abstractItemView](const QModelIndex &index) { receiver->edit(index); });
Pour plus d’exemples et d’approches, consultez la section « Connexion à des slots surchargés ».

Voir également QModelIndex::flags().

[virtual protected] bool QAbstractItemView::edit(const QModelIndex &index, QAbstractItemView::EditTrigger trigger, QEvent *event)

Lance la modification de l’élément à l’adresse index, en créant un éditeur si nécessaire, et renvoie true si l’ State de la vue est désormais EditingState; sinon, renvoie false.

L'action à l'origine du processus d'édition est décrite par trigger, et l'événement associé est spécifié par event.

L'édition peut être forcée en définissant trigger sur QAbstractItemView::AllEditTriggers.

Voir également closeEditor().

[virtual protected slot] void QAbstractItemView::editorDestroyed(QObject *editor)

Cette fonction est appelée lorsque l'editor on indiquée a été détruite.

Voir aussi closeEditor().

[signal] void QAbstractItemView::entered(const QModelIndex &index)

Ce signal est émis lorsque le curseur de la souris entre dans l'élément spécifié par index. Le suivi de la souris doit être activé pour que cette fonctionnalité fonctionne.

Voir également viewportEntered(), activated(), clicked(), doubleClicked() et pressed().

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

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

[override virtual protected] bool QAbstractItemView::eventFilter(QObject *object, QEvent *event)

Réimplémente : QObject::eventFilter(QObject *watched, QEvent *event).

[protected] void QAbstractItemView::executeDelayedItemsLayout()

Exécute les mises en page planifiées sans attendre que le traitement des événements commence.

Voir également scheduleDelayedItemsLayout().

[override virtual protected] void QAbstractItemView::focusInEvent(QFocusEvent *event)

Réimplémente : QWidget::focusInEvent(QFocusEvent *event).

Cette fonction est appelée avec l'event donné lorsque le widget obtient le focus. Par défaut, l'événement est ignoré.

Voir également setFocus() et focusOutEvent().

[override virtual protected] bool QAbstractItemView::focusNextPrevChild(bool next)

Réimplémente : QWidget::focusNextPrevChild(bool next).

[override virtual protected] void QAbstractItemView::focusOutEvent(QFocusEvent *event)

Réimplémente : QWidget::focusOutEvent(QFocusEvent *event).

Cette fonction est appelée avec l'event fourni lorsque le widget perd le focus. Par défaut, l'événement est ignoré.

Voir également clearFocus() et focusInEvent().

[pure virtual protected] int QAbstractItemView::horizontalOffset() const

Renvoie le décalage horizontal de la vue.

Dans la classe de base, il s'agit d'une fonction purement virtuelle.

Voir également ` verticalOffset()`.

[pure virtual] QModelIndex QAbstractItemView::indexAt(const QPoint &point) const

Renvoie l'index du modèle de l'élément situé aux coordonnées de la fenêtre d'affichage point.

Dans la classe de base, il s'agit d'une fonction purement virtuelle.

Voir également visualRect().

QWidget *QAbstractItemView::indexWidget(const QModelIndex &index) const

Renvoie le widget correspondant à l'élément situé à l'adresse index.

Voir aussi setIndexWidget().

[virtual protected, since 6.0] void QAbstractItemView::initViewItemOption(QStyleOptionViewItem *option) const

Initialiser la structure ` option ` avec la palette, la police, l'état, les alignements, etc. de la vue.

Remarque : les implémentations de cette méthode doivent vérifier l'version de la structure reçue, remplir tous les membres connus de l'implémentation et définir le membre « version » sur la version prise en charge par l'implémentation avant de renvoyer une valeur.

Cette fonction a été introduite dans Qt 6.0.

[override virtual protected] void QAbstractItemView::inputMethodEvent(QInputMethodEvent *event)

Réimplémente : QWidget::inputMethodEvent(QInputMethodEvent *event).

[override virtual] QVariant QAbstractItemView::inputMethodQuery(Qt::InputMethodQuery query) const

Réimplémente : ` QWidget::inputMethodQuery` (requête `Qt::InputMethodQuery`) const.

[pure virtual protected] bool QAbstractItemView::isIndexHidden(const QModelIndex &index) const

Renvoie « true » si l'élément référencé par l'index donné est masqué dans la vue, sinon renvoie « false ».

Le masquage est une fonctionnalité propre à la vue. Par exemple, dans ` TableView `, une colonne peut être marquée comme masquée, ou une ligne dans ` TreeView`.

Dans la classe de base, il s’agit d’une fonction purement virtuelle.

bool QAbstractItemView::isPersistentEditorOpen(const QModelIndex &index) const

Indique si un éditeur persistant est ouvert pour l'élément situé à l'index index.

Voir également openPersistentEditor() et closePersistentEditor().

QAbstractItemDelegate *QAbstractItemView::itemDelegate() const

Renvoie le délégué d'élément utilisé par cette vue et ce modèle. Il s'agit soit d'un délégué défini via la méthode ` setItemDelegate()`, soit du délégué par défaut.

Voir également setItemDelegate().

QAbstractItemDelegate *QAbstractItemView::itemDelegateForColumn(int column) const

Renvoie le délégué d'élément utilisé par cette vue et ce modèle pour l'column donné. Vous pouvez appeler la méthode itemDelegate() pour obtenir un pointeur vers le délégué actuel correspondant à un index donné.

Voir également setItemDelegateForColumn(), itemDelegateForRow() et itemDelegate().

[virtual, since 6.0] QAbstractItemDelegate *QAbstractItemView::itemDelegateForIndex(const QModelIndex &index) const

Renvoie le délégué d'élément utilisé par cette vue et ce modèle pour l'index donné.

Cette fonction a été introduite dans Qt 6.0.

Voir également setItemDelegate(), setItemDelegateForRow() et setItemDelegateForColumn().

QAbstractItemDelegate *QAbstractItemView::itemDelegateForRow(int row) const

Renvoie le délégué d'élément utilisé par cette vue et ce modèle pour l'row donné, ou nullptr si aucun délégué n'a été attribué. Vous pouvez appeler itemDelegate() pour obtenir un pointeur vers le délégué actuel correspondant à un index donné.

Voir également setItemDelegateForRow(), itemDelegateForColumn() et setItemDelegate().

[override virtual protected] void QAbstractItemView::keyPressEvent(QKeyEvent *event)

Réimplémente : QAbstractScrollArea::keyPressEvent(QKeyEvent *e).

Cette fonction est appelée avec l’ event donné lorsqu’un événement de touche est envoyé au widget. L’implémentation par défaut gère les mouvements de base du curseur, par exemple Haut, Bas, Gauche, Droite, Début, Page précédente et Page suivante ; le signal activated() est émis si l’index actuel est valide et que la touche d’activation est enfoncée (par exemple Entrée ou Retour, selon la plate-forme). C’est dans cette fonction que l’édition est lancée par une pression sur une touche, par exemple si l’on appuie sur F2.

Voir également edit(), moveCursor(), keyboardSearch() et tabKeyNavigation.

[virtual] void QAbstractItemView::keyboardSearch(const QString &search)

Se déplace vers l'élément correspondant le mieux à la chaîne « search » et le sélectionne. Si aucun élément n'est trouvé, rien ne se passe.

Dans l'implémentation par défaut, la recherche est réinitialisée si search est vide, ou si l'intervalle de temps écoulé depuis la dernière recherche a dépassé QApplication::keyboardInputInterval().

QAbstractItemModel *QAbstractItemView::model() const

Renvoie le modèle affiché par cette vue.

Voir aussi setModel().

[override virtual protected] void QAbstractItemView::mouseDoubleClickEvent(QMouseEvent *event)

Réimplémente : QAbstractScrollArea::mouseDoubleClickEvent(QMouseEvent *e).

Cette fonction est appelée avec l’ event donné lorsqu’un double-clic est effectué à l’intérieur du widget. Si le double-clic porte sur un élément valide, elle émet le signal doubleClicked() et appelle la fonction edit() sur cet élément.

[override virtual protected] void QAbstractItemView::mouseMoveEvent(QMouseEvent *event)

Réimplémente : QAbstractScrollArea::mouseMoveEvent(QMouseEvent *e).

Cette fonction est appelée avec l'event fournie lorsqu'un événement de déplacement de la souris est envoyé au widget. Si une sélection est en cours et que de nouveaux éléments sont déplacés dessus, la sélection est étendue ; si un glissement est en cours, il se poursuit.

[override virtual protected] void QAbstractItemView::mousePressEvent(QMouseEvent *event)

Réimplémente : QAbstractScrollArea::mousePressEvent(QMouseEvent *e).

Cette fonction est appelée avec l’ event donné lorsqu’un bouton de souris est enfoncé alors que le curseur se trouve à l’intérieur du widget. Si un élément valide est sélectionné, il devient l’élément actuel. Cette fonction émet le signal pressed().

[override virtual protected] void QAbstractItemView::mouseReleaseEvent(QMouseEvent *event)

Réimplémente : QAbstractScrollArea::mouseReleaseEvent(QMouseEvent *e).

Cette fonction est appelée avec l’objet ` event ` donné lorsqu’un bouton de souris est relâché, après un événement de clic sur le widget. Si un utilisateur clique à l’intérieur de votre widget puis fait glisser la souris vers un autre emplacement avant de relâcher le bouton, votre widget reçoit l’événement de relâchement. La fonction émettra le signal ` clicked()` si un élément était en cours de sélection.

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

Renvoie un objet ` QModelIndex ` pointant vers l'objet suivant dans la vue, en fonction de l'cursorAction fournie et des modificateurs de clavier spécifiés par ` modifiers`.

Dans la classe de base, il s'agit d'une fonction virtuelle pure.

void QAbstractItemView::openPersistentEditor(const QModelIndex &index)

Ouvre un éditeur persistant sur l'élément situé à l'index indiquée. Si aucun éditeur n'existe, le délégué en créera un nouveau.

Voir également closePersistentEditor() et isPersistentEditorOpen().

[signal] void QAbstractItemView::pressed(const QModelIndex &index)

Ce signal est émis lorsqu'un bouton de la souris est enfoncé. L'élément sur lequel la souris a été enfoncée est spécifié par ` index`. Le signal n'est émis que lorsque l'index est valide.

Utilisez la fonction QGuiApplication::mouseButtons() pour obtenir l'état des boutons de la souris.

Voir également activated(), clicked(), doubleClicked() et entered().

[virtual slot] void QAbstractItemView::reset()

Réinitialise l'état interne de la vue.

Avertissement : cette fonction réinitialise les éditeurs ouverts, les positions des barres de défilement, les sélections, etc. Les modifications existantes ne seront pas enregistrées. Si vous souhaitez enregistrer vos modifications lors de la réinitialisation de la vue, vous pouvez réimplémenter cette fonction, enregistrer vos modifications, puis appeler l'implémentation de la superclasse.

[override virtual protected] void QAbstractItemView::resizeEvent(QResizeEvent *event)

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

Cette fonction est appelée avec l'event donné lorsqu'un événement de redimensionnement est envoyé au widget.

Voir également QWidget::resizeEvent().

QModelIndex QAbstractItemView::rootIndex() const

Renvoie l'index du modèle correspondant à l'élément racine de ce dernier. L'élément racine est l'élément parent des éléments de niveau supérieur de la vue. La racine peut être invalide.

Voir également setRootIndex().

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

Cette méthode est appelée lorsque des lignes sont sur le point d'être supprimées. Les lignes supprimées sont celles situées sous l'parent donné, allant de « start » à « end » inclus.

Voir aussi rowsInserted().

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

Cette méthode est appelée lors de l'insertion de lignes. Les nouvelles lignes correspondent à celles situées sous l'parent spécifiée, comprise entre start et end inclus. L'implémentation de la classe parente appelle la méthode `fetchMore()` du modèle pour vérifier s'il existe d'autres données.

Voir également rowsAboutToBeRemoved().

[protected] void QAbstractItemView::scheduleDelayedItemsLayout()

Planifie la mise en page des éléments de la vue à exécuter lorsque le traitement des événements démarre.

Même si la fonction scheduleDelayedItemsLayout() est appelée plusieurs fois avant le traitement des événements, la vue n'effectuera la mise en page qu'une seule fois.

Voir également ` executeDelayedItemsLayout()`.

[protected] void QAbstractItemView::scrollDirtyRegion(int dx, int dy)

Prépare la vue pour un défilement de (dx,dy) pixels en déplaçant les zones modifiées dans la direction opposée. Vous ne devez appeler cette fonction que si vous implémentez une zone de défilement dans votre sous-classe de vue.

Si vous implémentez ` scrollContentsBy()` dans une sous-classe de ` QAbstractItemView`, appelez cette fonction avant d’appeler ` QWidget::scroll()` sur la fenêtre de visualisation. Vous pouvez également vous contenter d’appeler ` update()`.

Voir également scrollContentsBy(), dirtyRegionOffset() et setDirtyRegion().

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

Fait défiler la vue si nécessaire pour s'assurer que l'élément situé à l'adresse index soit visible. La vue tentera de positionner l'élément conformément à l'hint fournie.

Dans la classe de base, il s'agit d'une fonction purement virtuelle.

[slot] void QAbstractItemView::scrollToBottom()

Fait défiler la vue jusqu'en bas.

Voir également scrollTo() et scrollToTop().

[slot] void QAbstractItemView::scrollToTop()

Fait défiler la vue vers le haut.

Voir également scrollTo() et scrollToBottom().

[virtual slot] void QAbstractItemView::selectAll()

Sélectionne tous les éléments de la vue. Lors de la sélection, cette fonction utilise le comportement de sélection défini pour la vue.

Voir également setSelection(), selectedIndexes() et clearSelection().

[virtual protected] QModelIndexList QAbstractItemView::selectedIndexes() const

Cette fonction pratique renvoie une liste de tous les index des éléments sélectionnés et non masqués dans la vue. La liste ne contient aucun doublon et n'est pas triée.

Voir également QItemSelectionModel::selectedIndexes().

[virtual protected slot] void QAbstractItemView::selectionChanged(const QItemSelection &selected, const QItemSelection &deselected)

Cette méthode est appelée lorsque la sélection est modifiée. La sélection précédente (qui peut être vide) est spécifiée par ` deselected`, et la nouvelle sélection par ` selected`.

Voir également setSelection().

[virtual protected] QItemSelectionModel::SelectionFlags QAbstractItemView::selectionCommand(const QModelIndex &index, const QEvent *event = nullptr) const

Renvoie les SelectionFlags à utiliser lors de la mise à jour d'un modèle de sélection pour l'index spécifié. Le résultat dépend de l'selectionMode() en cours et de l'événement de saisie utilisateur event, qui peut être nullptr.

Réimplémentez cette fonction pour définir votre propre comportement de sélection.

Voir également setSelection().

QItemSelectionModel *QAbstractItemView::selectionModel() const

Renvoie le modèle de sélection actuel.

Voir également setSelectionModel() et selectedIndexes().

[slot] void QAbstractItemView::setCurrentIndex(const QModelIndex &index)

Définit l'élément actuel comme étant celui situé à l'adresse index.

À moins que le mode de sélection actuel ne soit « NoSelection », l’élément est également sélectionné. Notez que cette fonction met également à jour la position de départ pour toute nouvelle sélection effectuée par l’utilisateur.

Pour définir un élément comme élément courant sans le sélectionner, appelez

selectionModel()->setCurrentIndex(index, QItemSelectionModel::NoUpdate);

Voir également currentIndex(), currentChanged() et selectionMode.

[protected] void QAbstractItemView::setDirtyRegion(const QRegion &region)

Marque l'region on donnée comme « sale » et planifie sa mise à jour. Vous ne devez appeler cette fonction que si vous implémentez votre propre sous-classe de vue.

Voir également ` scrollDirtyRegion()` et ` dirtyRegionOffset()`.

void QAbstractItemView::setIndexWidget(const QModelIndex &index, QWidget *widget)

Définit l'widget spécifiée sur l'élément situé à l'index indiquée, en transférant la propriété du widget à la fenêtre d'affichage.

Si l'index n'est pas valide (par exemple, si vous transmettez l'index racine), cette fonction n'effectuera aucune action.

La propriété autoFillBackground de l'widget spécifié 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 à l'adresse index spécifiée.

Remarque : la vue prend possession de l’ widget. Cela signifie que si le widget d’index A est remplacé par le widget d’index B, le widget d’index A sera supprimé. Par exemple, dans l’extrait de code ci-dessous, l’objet QLineEdit sera supprimé.

setIndexWidget(index, new QLineEdit);
...
setIndexWidget(index, new QTextEdit);

Cette fonction ne doit être utilisée que pour afficher du contenu statique dans la zone visible correspondant à un élément de données. Si vous souhaitez afficher du contenu dynamique personnalisé ou implémenter un widget d’éditeur personnalisé, créez plutôt une sous-classe de QStyledItemDelegate.

Voir également indexWidget() et Classes de délégués.

void QAbstractItemView::setItemDelegate(QAbstractItemDelegate *delegate)

Définit le délégué d'élément pour cette vue et son modèle sur delegate. Cela s'avère utile si vous souhaitez contrôler entièrement la modification et l'affichage des éléments.

Tout délégué existant sera retiré, mais pas supprimé. QAbstractItemView ne prend pas possession de delegate.

Avertissement : vous ne devez pas partager la même instance d’un délégué entre plusieurs vues. Cela pourrait entraîner un comportement d’édition incorrect ou contre-intuitif, car chaque vue connectée à un délégué donné pourrait recevoir le signal ` closeEditor()` et tenter d’accéder à, de modifier ou de fermer un éditeur qui a déjà été fermé.

Voir également itemDelegate().

void QAbstractItemView::setItemDelegateForColumn(int column, QAbstractItemDelegate *delegate)

Définit l'delegate de l'élément spécifié, utilisé par cette vue et ce modèle pour l'column donné. Tous les éléments de column seront dessinés et gérés par delegate au lieu d'utiliser le délégué par défaut (c'est-à-dire itemDelegate()).

Tout délégué de colonne existant pour column sera supprimé, mais pas effacé. QAbstractItemView ne prend pas possession de delegate.

Remarque : si un délégué a été attribué à la fois à une ligne et à une colonne, le délégué de ligne aura la priorité et gérera l’index de la cellule d’intersection.

Avertissement : vous ne devez pas partager la même instance d’un délégué entre plusieurs vues. Cela peut entraîner un comportement d’édition incorrect ou contre-intuitif, car chaque vue connectée à un délégué donné peut recevoir le signal ` closeEditor()` et tenter d’accéder à, de modifier ou de fermer un éditeur qui a déjà été fermé.

Voir également itemDelegateForColumn(), setItemDelegateForRow() et itemDelegate().

void QAbstractItemView::setItemDelegateForRow(int row, QAbstractItemDelegate *delegate)

Définit l'élément delegate spécifié comme délégué utilisé par cette vue et ce modèle pour l'row donné. Tous les éléments de row seront dessinés et gérés par delegate au lieu d'utiliser le délégué par défaut (à savoir, itemDelegate()).

Tout délégué de ligne existant pour row sera supprimé, mais pas effacé. QAbstractItemView ne prend pas possession de delegate.

Remarque : si un délégué a été attribué à la fois à une ligne et à une colonne, le délégué de ligne (c’est-à-dire ce délégué) prévaudra et gérera l’index de la cellule d’intersection.

Avertissement : vous ne devez pas partager la même instance d’un délégué entre plusieurs vues. Cela peut entraîner un comportement d’édition incorrect ou contre-intuitif, car chaque vue connectée à un délégué donné peut recevoir le signal closeEditor() et tenter d’accéder, de modifier ou de fermer un éditeur qui a déjà été fermé.

Voir également ` itemDelegateForRow()`, ` setItemDelegateForColumn()` et ` itemDelegate()`.

[virtual] void QAbstractItemView::setModel(QAbstractItemModel *model)

Définit le modèle de sélection ( model ) que la vue doit afficher.

Cette fonction crée et définit un nouveau modèle de sélection, remplaçant tout modèle précédemment défini à l’aide de la fonction ` setSelectionModel()`. Toutefois, l’ancien modèle de sélection n’est pas supprimé, car il peut être partagé entre plusieurs vues. Nous vous recommandons de supprimer l’ancien modèle de sélection s’il n’est plus nécessaire. Pour ce faire, utilisez le code suivant :

QItemSelectionModel *m = view->selectionModel();
view->setModel(new model);
delete m;

Si l’ancien modèle et l’ancien modèle de sélection n’ont pas de parents, ou si leurs parents sont des objets à longue durée de vie, il peut être préférable d’appeler leurs fonctions ` deleteLater()` pour les supprimer explicitement.

La vue ne prend pas possession du modèle à moins d’être l’objet parent de celui-ci, car le modèle peut être partagé entre de nombreuses vues différentes.

Voir également model(), selectionModel() et setSelectionModel().

[virtual slot] void QAbstractItemView::setRootIndex(const QModelIndex &index)

Définit l'élément racine sur l'élément situé à l'adresse index.

Voir aussi rootIndex().

[pure virtual protected] void QAbstractItemView::setSelection(const QRect &rect, QItemSelectionModel::SelectionFlags flags)

Applique la sélection flags aux éléments situés à l'intérieur du rectangle ou touchés par celui-ci, rect.

Lorsque vous implémentez votre propre `itemview`, la méthode `setSelection` doit appeler ` selectionModel()`->`select(selection, flags)`, où `selection` est soit une collection vide de type ` QModelIndex `, soit une collection de type ` QItemSelection ` contenant tous les éléments présents dans ` rect`.

Voir également selectionCommand() et selectedIndexes().

[virtual] void QAbstractItemView::setSelectionModel(QItemSelectionModel *selectionModel)

Définit le modèle de sélection actuel sur l'selectionModel spécifié.

Notez que si vous appelez ` setModel()` après cette fonction, l’ selectionModel on indiquée sera remplacée par celle créée par la vue.

Remarque : il appartient à l’application de supprimer l’ancien modèle de sélection s’il n’est plus nécessaire ; c’est-à-dire s’il n’est pas utilisé par d’autres vues. Cela se produira automatiquement lorsque son objet parent sera supprimé. Cependant, s’il n’a pas de parent, ou si le parent est un objet à longue durée de vie, il peut être préférable d’appeler sa fonction ` deleteLater()` pour le supprimer explicitement.

Voir également selectionModel(), setModel() et clearSelection().

[protected] void QAbstractItemView::setState(QAbstractItemView::State state)

Définit l'état de la vue de l'élément sur la valeur indiquée state.

Voir également state().

[virtual] int QAbstractItemView::sizeHintForColumn(int column) const

Renvoie l'indication de largeur pour l'column spécifiée, ou -1 s'il n'y a pas de modèle.

Cette fonction est utilisée dans les vues comportant un en-tête horizontal pour déterminer la taille recommandée d’une section d’en-tête en fonction du contenu de l’ column donné.

Voir également sizeHintForRow().

QSize QAbstractItemView::sizeHintForIndex(const QModelIndex &index) const

Renvoie l'indication de taille pour l'élément dont l'index est spécifiée, ou une taille non valide si les index ne sont pas valides.

Voir également sizeHintForRow() et sizeHintForColumn().

[virtual] int QAbstractItemView::sizeHintForRow(int row) const

Renvoie la valeur indicative de hauteur pour l'row spécifié, ou -1 s'il n'y a pas de modèle.

La hauteur renvoyée est calculée à partir des indications de taille des éléments de l’ row donné ; en d’autres termes, la valeur renvoyée correspond à la hauteur maximale parmi ces éléments. Notez que pour contrôler la hauteur d’une ligne, vous devez réimplémenter la fonction QAbstractItemDelegate::sizeHint().

Cette fonction est utilisée dans les vues comportant un en-tête vertical pour déterminer la taille indicative d’une section d’en-tête en fonction du contenu de l’ row donné.

Voir également sizeHintForColumn().

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

Lance un glissement en appelant la méthode drag->exec() avec l'supportedActions on fournie.

[protected] QAbstractItemView::State QAbstractItemView::state() const

Renvoie l'état de la vue de l'élément.

Voir aussi setState().

[override virtual protected] void QAbstractItemView::timerEvent(QTimerEvent *event)

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

Cette fonction est appelée avec l'event fourni lorsqu'un événement de minuterie est envoyé au widget.

Voir aussi QObject::timerEvent().

[slot] void QAbstractItemView::update(const QModelIndex &index)

Met à jour la zone occupée par l'index donnée.

[virtual protected slot] void QAbstractItemView::updateGeometries()

Met à jour la géométrie des widgets enfants de la vue.

[pure virtual protected] int QAbstractItemView::verticalOffset() const

Renvoie le décalage vertical de la vue.

Dans la classe de base, il s'agit d'une fonction purement virtuelle.

Voir également ` horizontalOffset()`.

[signal] void QAbstractItemView::viewportEntered()

Ce signal est émis lorsque le curseur de la souris entre dans la zone d'affichage. Le suivi de la souris doit être activé pour que cette fonctionnalité fonctionne.

Voir également entered().

[override virtual protected] bool QAbstractItemView::viewportEvent(QEvent *event)

Réimplémente : QAbstractScrollArea::viewportEvent(QEvent *event).

Cette fonction sert à gérer les info-bulles et le mode « Qu'est-ce que c'est ? », si l'objet ` event ` fourni est un ` QEvent::ToolTip` ou un ` QEvent::WhatsThis`. Elle transmet tous les autres événements au gestionnaire `viewportEvent()` de sa classe de base.

Renvoie ` true ` si ` event ` a été reconnu et traité ; sinon, renvoie ` false`.

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

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

[pure virtual] QRect QAbstractItemView::visualRect(const QModelIndex &index) const

Renvoie le rectangle occupé par l'élément dans la fenêtre d'affichage à l'adresse index.

Si votre élément s'affiche dans plusieurs zones, visualRect doit renvoyer la zone principale qui contient l'index, et non la zone complète que l'index pourrait englober, toucher ou faire dessiner.

Dans la classe de base, il s'agit d'une fonction purement virtuelle.

Voir également ` indexAt()` et ` visualRegionForSelection()`.

[pure virtual protected] QRegion QAbstractItemView::visualRegionForSelection(const QItemSelection &selection) const

Renvoie la région correspondant à la fenêtre d'affichage des éléments de l'selection donné.

Dans la classe de base, il s'agit d'une fonction purement virtuelle.

Voir également ` visualRect()` et ` selectedIndexes()`.

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