QIdentityProxyModel Class

The QIdentityProxyModel class proxies its source model unmodified. 更多...

头: #include <QIdentityProxyModel>
qmake: QT += core
Since: Qt 4.8
继承: QAbstractProxyModel

公共函数

QIdentityProxyModel (QObject * parent = nullptr)
virtual ~QIdentityProxyModel ()

重实现公共函数

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 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

静态公共成员

const QMetaObject staticMetaObject

额外继承成员

详细描述

The QIdentityProxyModel class proxies its source model unmodified.

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 can not be modified.

class DateFormatProxyModel : public QIdentityProxyModel
{
  // ...
  void setDateFormatString(const QString &formatString)
  {
    m_formatString = formatString;
  }
  QVariant data(const QModelIndex &index, int role) const override
  {
    if (role != Qt::DisplayRole)
      return QIdentityProxyModel::data(index, role);
    const QDateTime dateTime = sourceModel()->data(SourceClass::DateRole).toDateTime();
    return dateTime.toString(m_formatString);
  }
private:
  QString m_formatString;
};
					

另请参阅 QAbstractProxyModel , 模型/视图编程 ,和 QAbstractItemModel .

成员函数文档编制

QIdentityProxyModel:: QIdentityProxyModel ( QObject * parent = nullptr)

Constructs an identity model with the given parent .

[虚拟] QIdentityProxyModel:: ~QIdentityProxyModel ()

Destroys this identity model.

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

重实现自 QAbstractItemModel::columnCount ().

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

重实现自 QAbstractProxyModel::dropMimeData ().

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

重实现自 QAbstractProxyModel::headerData ().

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

重实现自 QAbstractItemModel::index ().

[override virtual] bool QIdentityProxyModel:: insertColumns ( int column , int count , const QModelIndex & parent = QModelIndex())

重实现自 QAbstractItemModel::insertColumns ().

[override virtual] bool QIdentityProxyModel:: insertRows ( int row , int count , const QModelIndex & parent = QModelIndex())

重实现自 QAbstractItemModel::insertRows ().

[override virtual] QModelIndex QIdentityProxyModel:: mapFromSource (const QModelIndex & sourceIndex ) const

重实现自 QAbstractProxyModel::mapFromSource ().

[override virtual] QItemSelection QIdentityProxyModel:: mapSelectionFromSource (const QItemSelection & selection ) const

重实现自 QAbstractProxyModel::mapSelectionFromSource ().

[override virtual] QItemSelection QIdentityProxyModel:: mapSelectionToSource (const QItemSelection & selection ) const

重实现自 QAbstractProxyModel::mapSelectionToSource ().

[override virtual] QModelIndex QIdentityProxyModel:: mapToSource (const QModelIndex & proxyIndex ) const

重实现自 QAbstractProxyModel::mapToSource ().

[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

重实现自 QAbstractItemModel::match ().

[override virtual] QModelIndex QIdentityProxyModel:: parent (const QModelIndex & child ) const

重实现自 QAbstractItemModel::parent ().

[override virtual] bool QIdentityProxyModel:: removeColumns ( int column , int count , const QModelIndex & parent = QModelIndex())

重实现自 QAbstractItemModel::removeColumns ().

[override virtual] bool QIdentityProxyModel:: removeRows ( int row , int count , const QModelIndex & parent = QModelIndex())

重实现自 QAbstractItemModel::removeRows ().

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

重实现自 QAbstractItemModel::rowCount ().

[override virtual] void QIdentityProxyModel:: setSourceModel ( QAbstractItemModel * newSourceModel )

重实现自 QAbstractProxyModel::setSourceModel ().

[override virtual] QModelIndex QIdentityProxyModel:: sibling ( int row , int column , const QModelIndex & idx ) const

重实现自 QAbstractProxyModel::sibling ().