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.