QIdentityProxyModel Class
La clase QIdentityProxyModel delega su modelo fuente sin modificar. Más...
| Cabecera: | #include <QIdentityProxyModel> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Core)target_link_libraries(mytarget PRIVATE Qt6::Core) |
| qmake: | QT += core |
| Hereda: | QAbstractProxyModel |
Funciones Públicas
| QIdentityProxyModel(QObject *parent = nullptr) | |
| virtual | ~QIdentityProxyModel() |
(since 6.8) bool | handleSourceDataChanges() const |
(since 6.8) bool | handleSourceLayoutChanges() const |
Funciones públicas reimplementadas
| virtual int | columnCount(const QModelIndex &parent = QModelIndex()) const override |
| virtual bool | dropMimeData(const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent) 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 bool | insertColumns(int column, int count, const QModelIndex &parent = QModelIndex()) override |
| virtual bool | insertRows(int row, int count, const QModelIndex &parent = QModelIndex()) override |
| virtual QModelIndex | mapFromSource(const QModelIndex &sourceIndex) const override |
| virtual QItemSelection | mapSelectionFromSource(const QItemSelection &selection) const override |
| virtual QItemSelection | mapSelectionToSource(const QItemSelection &selection) const override |
| virtual QModelIndex | mapToSource(const QModelIndex &proxyIndex) const override |
| virtual QModelIndexList | match(const QModelIndex &start, int role, const QVariant &value, int hits = 1, Qt::MatchFlags flags = Qt::MatchFlags(Qt::MatchStartsWith|Qt::MatchWrap)) const override |
| virtual bool | moveColumns(const QModelIndex &sourceParent, int sourceColumn, int count, const QModelIndex &destinationParent, int destinationChild) override |
| virtual bool | moveRows(const QModelIndex &sourceParent, int sourceRow, int count, const QModelIndex &destinationParent, int destinationChild) override |
| virtual QModelIndex | parent(const QModelIndex &child) const override |
| virtual bool | removeColumns(int column, int count, const QModelIndex &parent = QModelIndex()) override |
| virtual bool | removeRows(int row, int count, const QModelIndex &parent = QModelIndex()) override |
| virtual int | rowCount(const QModelIndex &parent = QModelIndex()) const override |
| virtual void | setSourceModel(QAbstractItemModel *newSourceModel) override |
| virtual QModelIndex | sibling(int row, int column, const QModelIndex &idx) const override |
Funciones protegidas
(since 6.8) void | setHandleSourceDataChanges(bool b) |
(since 6.8) void | setHandleSourceLayoutChanges(bool b) |
Descripción Detallada
QIdentityProxyModel se puede utilizar para reenviar la estructura de un modelo de origen exactamente, sin ordenación, filtrado u otra transformación. Esto es similar en concepto a una matriz de identidad donde A.I = A.
Dado que no ordena ni filtra, esta clase es la más adecuada para los modelos proxy que transforman el data() del modelo fuente. Por ejemplo, se podría crear un modelo proxy para definir la fuente utilizada, o el color de fondo, o el tooltip, etc. Esto elimina la necesidad de implementar todo el manejo de datos en la misma clase que crea la estructura del modelo, y también se puede utilizar para crear componentes reutilizables.
Esto también proporciona una manera de cambiar los datos en el caso de que un modelo de origen es suministrado por un tercero que no puede ser modificado.
class DateFormatProxyModel : public QIdentityProxyModel { // ... void setDateFormatString(const QString &formatString) { m_formatString = formatString; } QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override { if (role != Qt::DisplayRole) return QIdentityProxyModel::data(index, role); const QModelIndex sourceIndex = mapToSource(index); const QDateTime dateTime = sourceModel()->data(sourceIndex, SourceClass::DateRole).toDateTime(); return dateTime.toString(m_formatString); } QMap<int, QVariant> itemData(const QModelIndex &proxyIndex) const override { QMap<int, QVariant> map = QIdentityProxyModel::itemData(proxyIndex); map[Qt::DisplayRole] = data(proxyIndex); return map; } private: QString m_formatString; };
Véase también QAbstractProxyModel, Model/View Programming, y QAbstractItemModel.
Documentación de las funciones miembro
[explicit] QIdentityProxyModel::QIdentityProxyModel(QObject *parent = nullptr)
Construye un modelo de identidad con la dirección parent.
[virtual noexcept] QIdentityProxyModel::~QIdentityProxyModel()
Destruye este modelo de identidad.
[override virtual] int QIdentityProxyModel::columnCount(const QModelIndex &parent = QModelIndex()) const
Reimplementa: QAbstractItemModel::columnCount(const QModelIndex &parent) const.
[override virtual] bool QIdentityProxyModel::dropMimeData(const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent)
Reimplementa: QAbstractProxyModel::dropMimeData(const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent).
[since 6.8] bool QIdentityProxyModel::handleSourceDataChanges() const
Devuelve true si este modelo proxy maneja los cambios de datos del modelo de origen, en caso contrario devuelve false.
Esta función se introdujo en Qt 6.8.
Véase también setHandleSourceDataChanges().
[since 6.8] bool QIdentityProxyModel::handleSourceLayoutChanges() const
Devuelve true si este modelo proxy maneja los cambios de diseño del modelo fuente, en caso contrario devuelve false.
Esta función se introdujo en Qt 6.8.
Véase también setHandleSourceLayoutChanges().
[override virtual] QVariant QIdentityProxyModel::headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const
Reimplementa: QAbstractProxyModel::headerData(int section, Qt::Orientation orientation, int role) const.
[override virtual] QModelIndex QIdentityProxyModel::index(int row, int column, const QModelIndex &parent = QModelIndex()) const
Reimplementa: QAbstractItemModel::index(int fila, int columna, const QModelIndex &parent) const.
[override virtual] bool QIdentityProxyModel::insertColumns(int column, int count, const QModelIndex &parent = QModelIndex())
Reimplementa: QAbstractItemModel::insertColumns(int columna, int cuenta, const QModelIndex &parent).
[override virtual] bool QIdentityProxyModel::insertRows(int row, int count, const QModelIndex &parent = QModelIndex())
Reimplementa: QAbstractItemModel::insertRows(int fila, int recuento, const QModelIndex &parent).
[override virtual] QModelIndex QIdentityProxyModel::mapFromSource(const QModelIndex &sourceIndex) const
Reimplementa: QAbstractProxyModel::mapFromSource(const QModelIndex &sourceIndex) const.
[override virtual] QItemSelection QIdentityProxyModel::mapSelectionFromSource(const QItemSelection &selection) const
Reimplementa: QAbstractProxyModel::mapSelectionFromSource(const QItemSelection &sourceSelection) const.
[override virtual] QItemSelection QIdentityProxyModel::mapSelectionToSource(const QItemSelection &selection) const
Reimplementa: QAbstractProxyModel::mapSelectionToSource(const QItemSelection &proxySelection) const.
[override virtual] QModelIndex QIdentityProxyModel::mapToSource(const QModelIndex &proxyIndex) const
Reimplementa: QAbstractProxyModel::mapToSource(const QModelIndex &proxyIndex) const.
[override virtual] QModelIndexList QIdentityProxyModel::match(const QModelIndex &start, int role, const QVariant &value, int hits = 1, Qt::MatchFlags flags = Qt::MatchFlags(Qt::MatchStartsWith|Qt::MatchWrap)) const
Reimplementa: QAbstractItemModel::match(const QModelIndex &start, int role, const QVariant &value, int hits, Qt::MatchFlags flags) const.
[override virtual] bool QIdentityProxyModel::moveColumns(const QModelIndex &sourceParent, int sourceColumn, int count, const QModelIndex &destinationParent, int destinationChild)
Reimplementa: QAbstractItemModel::moveColumns(const QModelIndex &sourceParent, int sourceColumn, int count, const QModelIndex &destinationParent, int destinationChild).
[override virtual] bool QIdentityProxyModel::moveRows(const QModelIndex &sourceParent, int sourceRow, int count, const QModelIndex &destinationParent, int destinationChild)
Reimplementa: QAbstractItemModel::moveRows(const QModelIndex &sourceParent, int sourceRow, int count, const QModelIndex &destinationParent, int destinationChild).
[override virtual] QModelIndex QIdentityProxyModel::parent(const QModelIndex &child) const
Reimplementa: QAbstractItemModel::parent(const QModelIndex &index) const.
[override virtual] bool QIdentityProxyModel::removeColumns(int column, int count, const QModelIndex &parent = QModelIndex())
Reimplementa: QAbstractItemModel::removeColumns(int column, int count, const QModelIndex &parent).
[override virtual] bool QIdentityProxyModel::removeRows(int row, int count, const QModelIndex &parent = QModelIndex())
Reimplementa: QAbstractItemModel::removeRows(int fila, int recuento, const QModelIndex &parent).
[override virtual] int QIdentityProxyModel::rowCount(const QModelIndex &parent = QModelIndex()) const
Reimplementa: QAbstractItemModel::rowCount(const QModelIndex &parent) const.
[protected, since 6.8] void QIdentityProxyModel::setHandleSourceDataChanges(bool b)
Si b es true, este modelo proxy manejará los cambios de datos del modelo fuente (conectándose a la señal QAbstractItemModel::dataChanged ).
Por defecto, este modelo proxy gestiona los cambios de datos del modelo fuente.
En subclases de QIdentityProxyModel, puede ser útil establecer esto a false si necesita manejar especialmente los cambios de datos del modelo fuente.
Nota: Llamar a este método sólo tendrá efecto después de llamar a setSourceModel().
Esta función se introdujo en Qt 6.8.
Véase también handleSourceDataChanges().
[protected, since 6.8] void QIdentityProxyModel::setHandleSourceLayoutChanges(bool b)
Si b es true, este modelo proxy gestionará los cambios de diseño del modelo fuente (conectándose a las señales QAbstractItemModel::layoutAboutToBeChanged y QAbstractItemModel::layoutChanged ).
Por defecto, este modelo proxy gestiona los cambios de diseño del modelo fuente.
En las subclases de QIdentityProxyModel, puede ser útil establecerlo en false si necesita manejar especialmente los cambios de diseño del modelo fuente.
Nota: Llamar a este método sólo tendrá efecto después de llamar a setSourceModel().
Esta función se introdujo en Qt 6.8.
Véase también handleSourceLayoutChanges().
[override virtual] void QIdentityProxyModel::setSourceModel(QAbstractItemModel *newSourceModel)
Reimplementa: QAbstractProxyModel::setSourceModel(QAbstractItemModel *sourceModel).
[override virtual] QModelIndex QIdentityProxyModel::sibling(int row, int column, const QModelIndex &idx) const
Reimplementa: QAbstractProxyModel::sibling(int fila, int columna, const QModelIndex &idx) 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.