En esta página

QAbstractListModel Class

La clase QAbstractListModel proporciona un modelo abstracto que puede ser subclasificado para crear modelos de listas unidimensionales. Más...

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

QPdfLinkModel, QPdfSearchModel, QStringListModel, QVirtualKeyboardSelectionListModel, y QWebEngineHistoryModel

Funciones Públicas

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

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 = 0, const QModelIndex &parent = QModelIndex()) const override
virtual QModelIndex sibling(int row, int column, const QModelIndex &idx) const override

Descripción detallada

QAbstractListModel proporciona una interfaz estándar para los modelos que representan sus datos como una simple secuencia no jerárquica 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; tendrá que subclasificar QAbstractItemModel si desea proporcionar un modelo para ese fin. Si necesita utilizar varios modelos de lista para gestionar datos, puede que sea más apropiado subclasificar QAbstractTableModel.

Se pueden crear modelos sencillos subclasificando esta clase e implementando el número mínimo de funciones necesarias. Por ejemplo, podríamos implementar un modelo simple de sólo lectura basado en QStringList que proporcione una lista de cadenas a un widget QListView. En tal caso, sólo necesitamos implementar la función rowCount() para devolver el número de elementos de la lista, y la función data() para recuperar elementos de la lista.

Dado que el modelo representa una estructura unidimensional, la función rowCount() devuelve el número total de elementos del modelo. La función columnCount() está implementada para interoperar con todo tipo de vistas, pero por defecto informa a las vistas de que el modelo sólo contiene una columna.

Subclases

Al subclasificar QAbstractListModel, debes proporcionar implementaciones de las funciones rowCount() y data(). Los modelos con buen comportamiento también proporcionan una implementación de headerData().

Si su modelo se utiliza dentro de QML y requiere funciones distintas de las predeterminadas proporcionadas por la función roleNames(), debe anularla.

Para los modelos de listas editables, también debe proporcionar una implementación de setData(), e implementar la función flags() para que devuelva un valor que contenga Qt::ItemIsEditable.

Ten en cuenta que QAbstractListModel proporciona una implementación por defecto de columnCount() que informa a las vistas de que sólo hay una única columna de elementos en este modelo.

Los modelos que proporcionan interfaces a estructuras de datos tipo lista redimensionables pueden proporcionar implementaciones de insertRows() y removeRows(). 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.

Véase también Model Classes, Model Subclassing Reference, QAbstractItemView, y QAbstractTableModel.

Documentación de funciones miembro

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

Construye un modelo de lista abstracta con la dirección parent.

[virtual noexcept] QAbstractListModel::~QAbstractListModel()

Destruye el modelo de lista abstracta.

[override virtual] bool QAbstractListModel::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 QAbstractListModel::flags(const QModelIndex &index) const

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

[override virtual] QModelIndex QAbstractListModel::index(int row, int column = 0, 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 QAbstractListModel::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.