En esta página

QConcatenateTablesProxyModel Class

La clase QConcatenateTablesProxyModel proxya múltiples modelos fuente, concatenando sus filas. Más...

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

Funciones Públicas

QConcatenateTablesProxyModel(QObject *parent = nullptr)
virtual ~QConcatenateTablesProxyModel()
void addSourceModel(QAbstractItemModel *sourceModel)
QModelIndex mapFromSource(const QModelIndex &sourceIndex) const
QModelIndex mapToSource(const QModelIndex &proxyIndex) const
void removeSourceModel(QAbstractItemModel *sourceModel)
QList<QAbstractItemModel *> sourceModels() const

Funciones públicas reimplementadas

virtual bool canDropMimeData(const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent) const override
virtual int columnCount(const QModelIndex &parent = QModelIndex()) const override
virtual QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override
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 QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const override
virtual QModelIndex index(int row, int column, const QModelIndex &parent = QModelIndex()) const override
virtual QMap<int, QVariant> itemData(const QModelIndex &proxyIndex) const override
virtual QMimeData *mimeData(const QModelIndexList &indexes) const override
virtual QStringList mimeTypes() const override
virtual QModelIndex parent(const QModelIndex &index) const override
(since 6.9.0) virtual QHash<int, QByteArray> roleNames() const override
virtual int rowCount(const QModelIndex &parent = QModelIndex()) const override
virtual bool setData(const QModelIndex &index, const QVariant &value, int role = Qt::EditRole) override
virtual bool setItemData(const QModelIndex &proxyIndex, const QMap<int, QVariant> &roles) override
virtual QSize span(const QModelIndex &index) const override

Descripción Detallada

QConcatenateTablesProxyModel toma múltiples modelos fuente y concatena sus filas.

En otras palabras, el proxy tendrá todas las filas del primer modelo fuente, seguido por todas las filas del segundo modelo fuente, y así sucesivamente.

Si los modelos fuente no tienen el mismo número de columnas, el proxy sólo tendrá tantas columnas como el modelo fuente con menor número de columnas. Las columnas adicionales en otros modelos de origen simplemente se ignorarán.

Los modelos fuente pueden añadirse y eliminarse en tiempo de ejecución, y el recuento de columnas se ajustará en consecuencia.

Este proxy no hereda de QAbstractProxyModel porque utiliza varios modelos de origen, en lugar de uno solo.

Sólo admite modelos planos (listas y tablas), no modelos de árbol.

Véase también QAbstractProxyModel, Model/View Programming, QIdentityProxyModel, y QAbstractItemModel.

Documentación de funciones miembro

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

Construye un modelo proxy de concatenación de filas con la dirección parent.

[virtual noexcept] QConcatenateTablesProxyModel::~QConcatenateTablesProxyModel()

Destruye este modelo de proxy.

void QConcatenateTablesProxyModel::addSourceModel(QAbstractItemModel *sourceModel)

Añade un modelo fuente sourceModel, por debajo de todos los modelos fuente añadidos previamente.

La propiedad de sourceModel no se ve afectada por esto.

No se puede añadir el mismo modelo fuente más de una vez.

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

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

[override virtual] int QConcatenateTablesProxyModel::columnCount(const QModelIndex &parent = QModelIndex()) const

Reimplementa: QAbstractItemModel::columnCount(const QModelIndex &parent) const.

Este método devuelve el recuento de columnas del modelo de origen con el menor número de columnas.

[override virtual] QVariant QConcatenateTablesProxyModel::data(const QModelIndex &index, int role = Qt::DisplayRole) const

Reimplementa: QAbstractItemModel::data(const QModelIndex &index, int rol) const.

Véase también setData().

[override virtual] bool QConcatenateTablesProxyModel::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).

QConcatenateTablesProxyModel Se encarga de soltar sobre un elemento, entre elementos y después del último elemento. En todos los casos, la llamada se reenvía al modelo fuente subyacente. Cuando se suelta sobre un elemento, se llama al modelo fuente de este elemento. Cuando se suelta entre elementos, se llama al modelo fuente inmediatamente inferior a la posición de soltado. Cuando se suelta después del último elemento, se llama al último modelo fuente.

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

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

Devuelve las banderas para el índice dado. Si index es válido, las banderas provienen del modelo fuente para este index. Si index no es válido (como se usa para determinar si se permite soltar sobre un área vacía de la vista, por ejemplo), se devuelven las banderas del primer modelo.

[override virtual] QVariant QConcatenateTablesProxyModel::headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const

Reimplementa: QAbstractItemModel::headerData(int sección, Qt::Orientación orientación, int rol) const.

Este método devuelve los datos de cabecera horizontales del primer modelo fuente, y los datos de cabecera verticales del modelo fuente correspondiente a cada fila.

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

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

[override virtual] QMap<int, QVariant> QConcatenateTablesProxyModel::itemData(const QModelIndex &proxyIndex) const

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

Véase también setItemData().

[invokable] QModelIndex QConcatenateTablesProxyModel::mapFromSource(const QModelIndex &sourceIndex) const

Devuelve el índice proxy para un sourceIndex dado, que puede ser de cualquiera de los modelos de origen.

Nota: Esta función puede invocarse a través del sistema de metaobjetos y desde QML. Véase Q_INVOKABLE.

[invokable] QModelIndex QConcatenateTablesProxyModel::mapToSource(const QModelIndex &proxyIndex) const

Devuelve el índice de origen de un determinado proxyIndex.

Nota: Esta función puede invocarse a través del sistema de metaobjetos y desde QML. Véase Q_INVOKABLE.

[override virtual] QMimeData *QConcatenateTablesProxyModel::mimeData(const QModelIndexList &indexes) const

Reimplementa: QAbstractItemModel::mimeData(const QModelIndexList &indexes) const.

La llamada se reenvía al modelo de origen del primer índice de la lista de indexes.

Importante: tenga en cuenta que este proxy sólo admite el arrastre de una única fila. Fallará si se llama con índices de múltiples filas, porque el arrastre de filas que pueden provenir de diferentes modelos de origen no puede ser implementado genéricamente por este modelo de proxy. Cada dato de QMimeData debe fusionarse, lo que es específico del tipo de datos. Reimplemente este método en una subclase si desea soportar el arrastre de múltiples filas.

[override virtual] QStringList QConcatenateTablesProxyModel::mimeTypes() const

Reimplementa: QAbstractItemModel::mimeTypes() const.

Este método devuelve los tipos mime del primer modelo fuente.

[override virtual] QModelIndex QConcatenateTablesProxyModel::parent(const QModelIndex &index) const

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

void QConcatenateTablesProxyModel::removeSourceModel(QAbstractItemModel *sourceModel)

Elimina el modelo fuente sourceModel, que se añadió previamente a este proxy.

La propiedad de sourceModel no se ve afectada por esto.

[override virtual, since 6.9.0] QHash<int, QByteArray> QConcatenateTablesProxyModel::roleNames() const

Reimplementa: QAbstractItemModel::roleNames() const.

Devuelve la unión de los roleNames() de los modelos subyacentes.

En caso de que los modelos de origen asocien diferentes nombres al mismo rol, el nombre utilizado en el último modelo de origen anula el nombre utilizado en los modelos anteriores.

Esta función se introdujo en Qt 6.9.0.

[override virtual] int QConcatenateTablesProxyModel::rowCount(const QModelIndex &parent = QModelIndex()) const

Reimplementa: QAbstractItemModel::rowCount(const QModelIndex &parent) const.

[override virtual] bool QConcatenateTablesProxyModel::setData(const QModelIndex &index, const QVariant &value, int role = Qt::EditRole)

Reimplementa: QAbstractItemModel::setData(const QModelIndex &index, const QVariant &value, int role).

Véase también data().

[override virtual] bool QConcatenateTablesProxyModel::setItemData(const QModelIndex &proxyIndex, const QMap<int, QVariant> &roles)

Reimplementa: QAbstractItemModel::setItemData(const QModelIndex &index, const QMap<int, QVariant> &roles).

Véase también itemData().

QList<QAbstractItemModel *> QConcatenateTablesProxyModel::sourceModels() const

Devuelve una lista de los modelos que se añadieron como modelos de origen para este modelo proxy.

[override virtual] QSize QConcatenateTablesProxyModel::span(const QModelIndex &index) const

Reimplementa: QAbstractItemModel::span(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.