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:
- Una implementación de insertRows() debe llamar a beginInsertRows() antes de insertar nuevas filas en la estructura de datos, y debe llamar a endInsertRows() inmediatamente después.
- Una implementación de removeRows() debe llamar a beginRemoveRows() antes de eliminar filas de la estructura de datos, y debe llamar a endRemoveRows() inmediatamente después.
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.