QModelIndex Class
La clase QModelIndex se utiliza para localizar datos en un modelo de datos. Más...
| Cabecera: | #include <QModelIndex> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Core)target_link_libraries(mytarget PRIVATE Qt6::Core) |
| qmake: | QT += core |
Esta clase es fuertemente comparable.
Funciones públicas
| 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 |
No miembros relacionados
| 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) |
Descripción detallada
Esta clase se utiliza como un índice en los modelos de elementos derivados de QAbstractItemModel. El índice es utilizado por las vistas de elementos, delegados y modelos de selección para localizar un elemento en el modelo.
Los nuevos objetos QModelIndex son creados por el modelo utilizando la función QAbstractItemModel::createIndex(). Un índice de modelo inválido puede ser construido con el constructor QModelIndex. Los índices inválidos se utilizan a menudo como índices padre cuando se refieren a elementos de nivel superior en un modelo.
Los índices de modelo se refieren a elementos de modelos y contienen toda la información necesaria para especificar su ubicación en dichos modelos. Cada índice se encuentra en una fila y columna determinadas, y puede tener un índice padre; utilice row(), column() y parent() para obtener esta información. Cada elemento de nivel superior en un modelo está representado por un índice de modelo que no tiene un índice padre - en este caso, parent() devolverá un índice de modelo inválido, equivalente a un índice construido con la forma de argumento cero del constructor QModelIndex().
Para obtener un índice de modelo que haga referencia a un elemento existente en un modelo, llame a QAbstractItemModel::index() con los valores de fila y columna requeridos, y el índice de modelo del padre. Cuando haga referencia a elementos de nivel superior de un modelo, proporcione QModelIndex() como índice padre.
La función model() devuelve el modelo al que hace referencia el índice como QAbstractItemModel. La función child() se utiliza para examinar los elementos que se encuentran bajo el índice en el modelo. La función sibling() permite recorrer los elementos del modelo en el mismo nivel que el índice.
Nota: Los índices del modelo deben utilizarse inmediatamente y luego descartarse. No se debe confiar en que los índices sigan siendo válidos después de llamar a funciones del modelo que cambien la estructura del modelo o eliminen elementos. Si necesita mantener un índice de modelo a lo largo del tiempo, utilice QPersistentModelIndex.
Véase también Programación Modelo/Vista, QPersistentModelIndex, y QAbstractItemModel.
Documentación de funciones miembro
[constexpr noexcept] QModelIndex::QModelIndex()
Crea un nuevo índice de modelo vacío. Este tipo de índice de modelo se utiliza para indicar que la posición en el modelo no es válida.
Véase también isValid() y QAbstractItemModel.
[constexpr noexcept] int QModelIndex::column() const
Devuelve la columna a la que se refiere este índice de modelo.
[noexcept] const void *QModelIndex::constInternalPointer() const
Devuelve un puntero const void * utilizado por el modelo para asociar el índice con la estructura de datos interna.
Véase también QAbstractItemModel::createIndex().
QVariant QModelIndex::data(int role = Qt::DisplayRole) const
Devuelve los datos del role dado para el elemento al que hace referencia el índice, o un QVariant construido por defecto si el índice de este modelo es invalid.
Qt::ItemFlags QModelIndex::flags() const
Devuelve las banderas del elemento al que hace referencia el índice.
[constexpr noexcept] quintptr QModelIndex::internalId() const
Devuelve un quintptr utilizado por el modelo para asociar el índice con la estructura de datos interna.
Véase también QAbstractItemModel::createIndex().
[noexcept] void *QModelIndex::internalPointer() const
Devuelve un puntero void * utilizado por el modelo para asociar el índice con la estructura de datos interna.
Véase también QAbstractItemModel::createIndex().
[constexpr noexcept] bool QModelIndex::isValid() const
Devuelve true si el índice de este modelo es válido; en caso contrario, devuelve false.
Un índice válido pertenece a un modelo y tiene números de fila y columna no negativos.
Véase también model(), row() y column().
[constexpr noexcept] const QAbstractItemModel *QModelIndex::model() const
Devuelve un puntero al modelo que contiene el elemento al que se refiere este índice.
Se devuelve un puntero constante al modelo porque las llamadas a funciones no constantes del modelo podrían invalidar el índice del modelo y posiblemente bloquear la aplicación.
[since 6.0] void QModelIndex::multiData(QModelRoleDataSpan roleDataSpan) const
Rellena el roleDataSpan dado para el elemento al que hace referencia el índice.
Esta función se introdujo en Qt 6.0.
QModelIndex QModelIndex::parent() const
Devuelve el padre del índice del modelo, o QModelIndex() si no tiene padre.
Véase también sibling() y model().
[constexpr noexcept] int QModelIndex::row() const
Devuelve la fila a la que se refiere este índice de modelo.
QModelIndex QModelIndex::sibling(int row, int column) const
Devuelve el hermano en row y column. Si no hay ningún hermano en esta posición, se devuelve un QModelIndex inválido.
Véase también parent(), siblingAtColumn() y siblingAtRow().
QModelIndex QModelIndex::siblingAtColumn(int column) const
Devuelve el hermano en column para la fila actual. Si no hay ningún hermano en esta posición, se devuelve un QModelIndex no válido.
Véase también sibling() y siblingAtRow().
QModelIndex QModelIndex::siblingAtRow(int row) const
Devuelve el hermano en row para la columna actual. Si no hay ningún hermano en esta posición, se devuelve un QModelIndex no válido.
Véase también sibling() y siblingAtColumn().
No miembros relacionados
QModelIndexList
Sinónimo de QList<QModelIndex>.
[constexpr noexcept] bool operator!=(const QModelIndex &lhs, const QModelIndex &rhs)
Devuelve true si el índice del modelo lhs no se refiere a la misma ubicación que el índice del modelo rhs; en caso contrario devuelve false.
[constexpr noexcept] bool operator<(const QModelIndex &lhs, const QModelIndex &rhs)
Devuelve true si el índice del modelo lhs es menor que el índice del modelo rhs; en caso contrario devuelve false.
El cálculo de menor que no es directamente útil para los desarrolladores, ya que no está definida la forma en que se comparan los índices con diferentes padres. Este operador sólo existe para que la clase pueda utilizarse con QMap.
[constexpr noexcept] bool operator==(const QModelIndex &lhs, const QModelIndex &rhs)
Devuelve true si el índice del modelo lhs se refiere a la misma ubicación que el índice del modelo rhs; en caso contrario devuelve false.
El puntero de datos interno, la fila, la columna y los valores del modelo se utilizan al comparar con otro índice del modelo.
© 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.