En esta página

QAbstractTableModel Class

La clase QAbstractTableModel provee un modelo abstracto que puede ser subclasificado para crear modelos de tablas. Más...

Cabecera: #include <QAbstractTableModel>
CMake: find_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
qmake: QT += core
Hereda: QAbstractItemModel
Heredado por:

QSqlQueryModel

Funciones Públicas

QAbstractTableModel(QObject *parent = nullptr)
virtual ~QAbstractTableModel()

Funciones públicas reimplementadas

virtual bool dropMimeData(const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent) override
virtual Qt::ItemFlags flags(const QModelIndex &index) const override
virtual QModelIndex index(int row, int column, const QModelIndex &parent = QModelIndex()) const override
virtual QModelIndex sibling(int row, int column, const QModelIndex &idx) const override

Descripción Detallada

QAbstractTableModel proporciona una interfaz estándar para los modelos que representan sus datos como una matriz bidimensional de elementos. No se utiliza directamente, sino que debe subclasificarse.

Dado que el modelo proporciona una interfaz más especializada que QAbstractItemModel, no es adecuado para su uso con vistas de árbol, aunque puede utilizarse para proporcionar datos a un QListView. Si necesita representar una lista simple de elementos, y sólo necesita un modelo que contenga una única columna de datos, puede ser más apropiado subclasificar el QAbstractListModel.

Las funciones rowCount() y columnCount() devuelven las dimensiones de la tabla. Para recuperar un índice de modelo correspondiente a un elemento del modelo, utilice index() y proporcione únicamente los números de fila y columna.

Subclases

Cuando subclase QAbstractTableModel, debe implementar rowCount(), columnCount(), y data(). QAbstractTableModel proporciona implementaciones por defecto de las funciones index() y parent(). Los modelos con buen comportamiento también implementarán headerData().

Los modelos editables necesitan implementar setData(), e implementar flags() para devolver un valor que contenga Qt::ItemIsEditable.

Los modelos que proporcionan interfaces a estructuras de datos redimensionables pueden proporcionar implementaciones de insertRows(), removeRows(), insertColumns(), y removeColumns(). Al implementar estas funciones, es importante llamar a las funciones apropiadas para que todas las vistas conectadas sean conscientes de cualquier cambio:

Nota: Algunas directrices generales para subclasificar modelos están disponibles en la Referencia de subclasificación de modelos.

Seguridad de los hilos

Al ser una subclase de QObject, QAbstractTableModel no es thread-safe. Cualquier API relacionada con el modelo QAbstractTableModel sólo debe ser llamada desde el thread en el que vive el objeto modelo. Si QAbstractTableModel está conectado a una vista, opera en el hilo GUI, ya que la vista reside allí e interactúa con el modelo desde ese hilo. Aunque se puede utilizar un subproceso en segundo plano para rellenar o modificar el contenido del modelo, debe hacerlo con cuidado, ya que no puede llamar directamente a ninguna API relacionada con el modelo. En su lugar, debe poner en cola las actualizaciones y aplicarlas en el hilo principal. Esto puede hacerse con conexiones en cola.

Véase también Clases de modelos, QAbstractItemModel, y QAbstractListModel.

Documentación de las funciones miembro

[explicit] QAbstractTableModel::QAbstractTableModel(QObject *parent = nullptr)

Construye un modelo abstracto de tabla para la dirección parent.

[virtual noexcept] QAbstractTableModel::~QAbstractTableModel()

Destruye el modelo abstracto de la tabla.

[override virtual] bool QAbstractTableModel::dropMimeData(const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent)

Reimplementa: QAbstractItemModel::dropMimeData(const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent).

[override virtual] Qt::ItemFlags QAbstractTableModel::flags(const QModelIndex &index) const

Reimplementa: QAbstractItemModel::flags(const QModelIndex &index) const.

[override virtual] QModelIndex QAbstractTableModel::index(int row, int column, const QModelIndex &parent = QModelIndex()) const

Reimplementa: QAbstractItemModel::index(int fila, int columna, const QModelIndex &parent) const.

Devuelve el índice de los datos en row y column con parent.

Véase también parent().

[override virtual] QModelIndex QAbstractTableModel::sibling(int row, int column, const QModelIndex &idx) const

Reimplementa: QAbstractItemModel::sibling(int fila, int columna, const QModelIndex &index) const.

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