QIdentityProxyModel Class▲
-
Header: QIdentityProxyModel
-
CMake:
find_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
-
qmake: QT += core
-
Inherits: QAbstractProxyModel
-
Group: QIdentityProxyModel is part of model-view
Detailed Description▲
QIdentityProxyModel can be used to forward the structure of a source model exactly, with no sorting, filtering or other transformation. This is similar in concept to an identity matrix where A.I = A.
Because it does no sorting or filtering, this class is most suitable to proxy models which transform the data() of the source model. For example, a proxy model could be created to define the font used, or the background colour, or the tooltip etc. This removes the need to implement all data handling in the same class that creates the structure of the model, and can also be used to create re-usable components.
This also provides a way to change the data in the case where a source model is supplied by a third party which cannot be modified.
class
DateFormatProxyModel : public
QIdentityProxyModel
{
// ...
void
setDateFormatString(const
QString &
amp;formatString)
{
m_formatString =
formatString;
}
QVariant data(const
QModelIndex &
amp;index, int
role) const
override
{
if
(role !=
Qt::
DisplayRole)
return
QIdentityProxyModel::
data(index, role);
const
QDateTime dateTime =
sourceModel()-&
gt;data(SourceClass::
DateRole).toDateTime();
return
dateTime.toString(m_formatString);
}
private
:
QString m_formatString;
}
;
See Also▲
Member Function Documentation▲
[explicit] QIdentityProxyModel::QIdentityProxyModel(QObject *parent = nullptr)▲
Constructs an identity model with the given parent.
[virtual] QIdentityProxyModel::~QIdentityProxyModel()▲
Destroys this identity model.
[override virtual] int QIdentityProxyModel::columnCount(const QModelIndex &parent = QModelIndex()) const▲
[override virtual] bool QIdentityProxyModel::dropMimeData(const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent)▲
Reimplements: QAbstractProxyModel::dropMimeData(const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent).
[override virtual] QVariant QIdentityProxyModel::headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const▲
Reimplements: QAbstractProxyModel::headerData(int section, Qt::Orientation orientation, int role) const.
[override virtual] QModelIndex QIdentityProxyModel::index(int row, int column, const QModelIndex &parent = QModelIndex()) const▲
[override virtual] bool QIdentityProxyModel::insertColumns(int column, int count, const QModelIndex &parent = QModelIndex())▲
[override virtual] bool QIdentityProxyModel::insertRows(int row, int count, const QModelIndex &parent = QModelIndex())▲
[override virtual] QModelIndex QIdentityProxyModel::mapFromSource(const QModelIndex &sourceIndex) const▲
[override virtual] QItemSelection QIdentityProxyModel::mapSelectionFromSource(const QItemSelection &selection) const▲
Reimplements: QAbstractProxyModel::mapSelectionFromSource(const QItemSelection &sourceSelection) const.
[override virtual] QItemSelection QIdentityProxyModel::mapSelectionToSource(const QItemSelection &selection) const▲
Reimplements: QAbstractProxyModel::mapSelectionToSource(const QItemSelection &proxySelection) const.
[override virtual] QModelIndex QIdentityProxyModel::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▲
Reimplements: QAbstractItemModel::match(const QModelIndex &start, int role, const QVariant &value, int hits, Qt::MatchFlags flags) const.
[override virtual, since 5.15] bool QIdentityProxyModel::moveColumns(const QModelIndex &sourceParent, int sourceColumn, int count, const QModelIndex &destinationParent, int destinationChild)▲
This function was introduced in Qt 5.15.
[override virtual, since 5.15] bool QIdentityProxyModel::moveRows(const QModelIndex &sourceParent, int sourceRow, int count, const QModelIndex &destinationParent, int destinationChild)▲
This function was introduced in Qt 5.15.
[override virtual] QModelIndex QIdentityProxyModel::parent(const QModelIndex &child) const▲
Reimplements: QAbstractItemModel::parent(const QModelIndex &index) const.