Sur cette page

QModelIndex Class

La classe QModelIndex est utilisée pour localiser des données dans un modèle de données. Plus d'informations...

En-tête : #include <QModelIndex>
CMake : find_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
qmake : QT += core

Cette classe est fortement comparable.

Fonctions publiques

QModelIndex()
int column() const
const void *constInternalPointer() const
QVariant data(int role = Qt::DisplayRole) const
Qt::ItemFlags flags() const
quintptr internalId() const
void *internalPointer() const
bool isValid() const
const QAbstractItemModel *model() const
(since 6.0) void multiData(QModelRoleDataSpan roleDataSpan) const
QModelIndex parent() const
int row() const
QModelIndex sibling(int row, int column) const
QModelIndex siblingAtColumn(int column) const
QModelIndex siblingAtRow(int row) const
QModelIndexList
bool operator!=(const QModelIndex &lhs, const QModelIndex &rhs)
bool operator<(const QModelIndex &lhs, const QModelIndex &rhs)
bool operator==(const QModelIndex &lhs, const QModelIndex &rhs)

Description détaillée

Cette classe est utilisée comme index dans les modèles d'éléments dérivés de QAbstractItemModel. L'index est utilisé par les vues d'éléments, les délégués et les modèles de sélection pour localiser un élément dans le modèle.

Les nouveaux objets QModelIndex sont créés par le modèle à l'aide de la fonction QAbstractItemModel::createIndex(). Un index de modèle non valide peut être construit à l'aide du constructeur QModelIndex. Les index non valides sont souvent utilisés comme index parent lorsqu'ils font référence à des éléments de premier niveau dans un modèle.

Les index de modèle font référence à des éléments de modèles et contiennent toutes les informations nécessaires pour spécifier leur emplacement dans ces modèles. Chaque index est situé dans une ligne et une colonne données et peut avoir un index parent ; utilisez row(), column() et parent() pour obtenir ces informations. Chaque élément de premier niveau d'un modèle est représenté par un index de modèle qui n'a pas d'index parent - dans ce cas, parent() renverra un index de modèle invalide, équivalent à un index construit avec la forme d'argument zéro du constructeur QModelIndex().

Pour obtenir un index de modèle faisant référence à un élément existant dans un modèle, appelez QAbstractItemModel::index() avec les valeurs de ligne et de colonne requises et l'index de modèle du parent. Pour faire référence à des éléments de niveau supérieur dans un modèle, il convient de fournir QModelIndex() comme index parent.

La fonction model() renvoie le modèle auquel l'index fait référence sous la forme d'un QAbstractItemModel. La fonction child() est utilisée pour examiner les éléments contenus dans le modèle sous l'index. La fonction sibling() permet de parcourir les éléments du modèle au même niveau que l'index.

Remarque : les index de modèle doivent être utilisés immédiatement, puis supprimés. Vous ne devez pas compter sur la validité des index après avoir appelé des fonctions de modèle qui modifient la structure du modèle ou suppriment des éléments. Si vous devez conserver un index de modèle dans le temps, utilisez une adresse QPersistentModelIndex.

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

Documentation sur les fonctions membres

[constexpr noexcept] QModelIndex::QModelIndex()

Crée un nouvel index de modèle vide. Ce type d'index de modèle est utilisé pour indiquer que la position dans le modèle n'est pas valide.

Voir également isValid() et QAbstractItemModel.

[constexpr noexcept] int QModelIndex::column() const

Renvoie la colonne à laquelle l'index du modèle fait référence.

[noexcept] const void *QModelIndex::constInternalPointer() const

Renvoie un pointeur const void * utilisé par le modèle pour associer l'index à la structure de données interne.

Voir aussi QAbstractItemModel::createIndex().

QVariant QModelIndex::data(int role = Qt::DisplayRole) const

Renvoie les données de l'article référencé par l'index pour le modèle role donné, ou un modèle QVariant construit par défaut si l'index de ce modèle est invalid.

Qt::ItemFlags QModelIndex::flags() const

Renvoie les drapeaux de l'élément auquel se réfère l'index.

[constexpr noexcept] quintptr QModelIndex::internalId() const

Renvoie une adresse quintptr utilisée par le modèle pour associer l'index à la structure de données interne.

Voir aussi QAbstractItemModel::createIndex().

[noexcept] void *QModelIndex::internalPointer() const

Renvoie un pointeur void * utilisé par le modèle pour associer l'index à la structure de données interne.

Voir aussi QAbstractItemModel::createIndex().

[constexpr noexcept] bool QModelIndex::isValid() const

Renvoie true si l'index de ce modèle est valide ; sinon, renvoie false.

Un index valide appartient à un modèle et possède des numéros de ligne et de colonne non négatifs.

Voir aussi model(), row() et column().

[constexpr noexcept] const QAbstractItemModel *QModelIndex::model() const

Renvoie un pointeur sur le modèle contenant l'élément auquel cet index fait référence.

Un pointeur const sur le modèle est renvoyé car les appels à des fonctions non const du modèle risquent d'invalider l'index du modèle et de faire planter votre application.

[since 6.0] void QModelIndex::multiData(QModelRoleDataSpan roleDataSpan) const

Remplit le site roleDataSpan pour l'élément auquel l'index fait référence.

Cette fonction a été introduite dans Qt 6.0.

QModelIndex QModelIndex::parent() const

Renvoie le parent de l'index du modèle, ou QModelIndex() s'il n'a pas de parent.

Voir aussi sibling() et model().

[constexpr noexcept] int QModelIndex::row() const

Renvoie la ligne à laquelle l'index du modèle fait référence.

QModelIndex QModelIndex::sibling(int row, int column) const

Renvoie le frère ou la sœur à row et column. S'il n'y a pas de frère ou de sœur à cette position, un QModelIndex invalide est renvoyé.

Voir aussi parent(), siblingAtColumn() et siblingAtRow().

QModelIndex QModelIndex::siblingAtColumn(int column) const

Renvoie le frère ou la sœur situé(e) à column pour la ligne en cours. S'il n'y a pas de frère ou de sœur à cette position, une adresse QModelIndex invalide est renvoyée.

Voir aussi sibling() et siblingAtRow().

QModelIndex QModelIndex::siblingAtRow(int row) const

Renvoie le frère ou la sœur situé(e) à row pour la colonne actuelle. S'il n'y a pas de frère ou de sœur à cette position, un QModelIndex invalide est renvoyé.

Voir aussi sibling() et siblingAtColumn().

Non-membres apparentés

QModelIndexList

Synonyme de QList<QModelIndex>.

[constexpr noexcept] bool operator!=(const QModelIndex &lhs, const QModelIndex &rhs)

Renvoie true si l'index du modèle lhs ne fait pas référence au même endroit que l'index du modèle rhs; sinon, renvoie false.

[constexpr noexcept] bool operator<(const QModelIndex &lhs, const QModelIndex &rhs)

Renvoie true si l'indice du modèle lhs est inférieur à l'indice du modèle rhs; sinon, renvoie false.

Le calcul "moins que" n'est pas directement utile aux développeurs, car la manière dont les index ayant des parents différents sont comparés n'est pas définie. Cet opérateur n'existe que pour que la classe puisse être utilisée avec QMap.

[constexpr noexcept] bool operator==(const QModelIndex &lhs, const QModelIndex &rhs)

Renvoie true si l'index du modèle lhs fait référence au même emplacement que l'index du modèle rhs; sinon, renvoie false.

Le pointeur de données interne, la ligne, la colonne et les valeurs du modèle sont utilisés lors de la comparaison avec un autre index de modèle.

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