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 |
Non-membres apparentés
| 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.