Qt
Internal/Contributor docs for the Qt SDK. <b>Note:</b> These are NOT official API docs; those are found <a href='https://doc.qt.io/'>here</a>.
Loading...
Searching...
No Matches
QSortFilterProxyModel Class Reference

The QSortFilterProxyModel class provides support for sorting and filtering data passed between another model and a view. More...

#include <qsortfilterproxymodel.h>

+ Inheritance diagram for QSortFilterProxyModel:
+ Collaboration diagram for QSortFilterProxyModel:

Public Slots

void setFilterRegularExpression (const QString &pattern)
 
void setFilterRegularExpression (const QRegularExpression &regularExpression)
 
void setFilterWildcard (const QString &pattern)
 Sets the wildcard expression used to filter the contents of the source model to the given pattern.
 
void setFilterFixedString (const QString &pattern)
 Sets the fixed string used to filter the contents of the source model to the given pattern.
 
void invalidate ()
 
- Public Slots inherited from QAbstractItemModel
- Public Slots inherited from QObject
void deleteLater ()
 \threadsafe
 

Signals

void dynamicSortFilterChanged (bool dynamicSortFilter)
 
void filterCaseSensitivityChanged (Qt::CaseSensitivity filterCaseSensitivity)
 This signal is emitted when the case sensitivity of the filter changes to filterCaseSensitivity.
 
void sortCaseSensitivityChanged (Qt::CaseSensitivity sortCaseSensitivity)
 This signal is emitted when the case sensitivity for sorting changes to sortCaseSensitivity.
 
void sortLocaleAwareChanged (bool sortLocaleAware)
 This signal is emitted when the locale aware setting changes to sortLocaleAware.
 
void sortRoleChanged (int sortRole)
 This signal is emitted when the sort role changes to sortRole.
 
void filterRoleChanged (int filterRole)
 This signal is emitted when the filter role changes to filterRole.
 
void recursiveFilteringEnabledChanged (bool recursiveFilteringEnabled)
 This signal is emitted when the recursive filter setting is changed to recursiveFilteringEnabled.
 
void autoAcceptChildRowsChanged (bool autoAcceptChildRows)
 This signals is emitted when the value of the autoAcceptChildRows property is changed.
 
- Signals inherited from QAbstractProxyModel
void sourceModelChanged (QPrivateSignal)
 
- Signals inherited from QAbstractItemModel
void dataChanged (const QModelIndex &topLeft, const QModelIndex &bottomRight, const QList< int > &roles=QList< int >())
 This signal is emitted whenever the data in an existing item changes.
 
void headerDataChanged (Qt::Orientation orientation, int first, int last)
 This signal is emitted whenever a header is changed.
 
void layoutChanged (const QList< QPersistentModelIndex > &parents=QList< QPersistentModelIndex >(), QAbstractItemModel::LayoutChangeHint hint=QAbstractItemModel::NoLayoutChangeHint)
 
void layoutAboutToBeChanged (const QList< QPersistentModelIndex > &parents=QList< QPersistentModelIndex >(), QAbstractItemModel::LayoutChangeHint hint=QAbstractItemModel::NoLayoutChangeHint)
 
void rowsAboutToBeInserted (const QModelIndex &parent, int first, int last, QPrivateSignal)
 This signal is emitted just before rows are inserted into the model.
 
void rowsInserted (const QModelIndex &parent, int first, int last, QPrivateSignal)
 This signal is emitted after rows have been inserted into the model.
 
void rowsAboutToBeRemoved (const QModelIndex &parent, int first, int last, QPrivateSignal)
 This signal is emitted just before rows are removed from the model.
 
void rowsRemoved (const QModelIndex &parent, int first, int last, QPrivateSignal)
 This signal is emitted after rows have been removed from the model.
 
void columnsAboutToBeInserted (const QModelIndex &parent, int first, int last, QPrivateSignal)
 This signal is emitted just before columns are inserted into the model.
 
void columnsInserted (const QModelIndex &parent, int first, int last, QPrivateSignal)
 This signal is emitted after columns have been inserted into the model.
 
void columnsAboutToBeRemoved (const QModelIndex &parent, int first, int last, QPrivateSignal)
 This signal is emitted just before columns are removed from the model.
 
void columnsRemoved (const QModelIndex &parent, int first, int last, QPrivateSignal)
 This signal is emitted after columns have been removed from the model.
 
void modelAboutToBeReset (QPrivateSignal)
 
void modelReset (QPrivateSignal)
 
void rowsAboutToBeMoved (const QModelIndex &sourceParent, int sourceStart, int sourceEnd, const QModelIndex &destinationParent, int destinationRow, QPrivateSignal)
 
void rowsMoved (const QModelIndex &sourceParent, int sourceStart, int sourceEnd, const QModelIndex &destinationParent, int destinationRow, QPrivateSignal)
 
void columnsAboutToBeMoved (const QModelIndex &sourceParent, int sourceStart, int sourceEnd, const QModelIndex &destinationParent, int destinationColumn, QPrivateSignal)
 
void columnsMoved (const QModelIndex &sourceParent, int sourceStart, int sourceEnd, const QModelIndex &destinationParent, int destinationColumn, QPrivateSignal)
 
- Signals inherited from QObject
void destroyed (QObject *=nullptr)
 This signal is emitted immediately before the object obj is destroyed, after any instances of QPointer have been notified, and cannot be blocked.
 
void objectNameChanged (const QString &objectName, QPrivateSignal)
 This signal is emitted after the object's name has been changed.
 

Public Member Functions

 QSortFilterProxyModel (QObject *parent=nullptr)
 Constructs a sorting filter model with the given parent.
 
 ~QSortFilterProxyModel ()
 Destroys this sorting filter model.
 
void setSourceModel (QAbstractItemModel *sourceModel) override
 \reimp
 
QModelIndex mapToSource (const QModelIndex &proxyIndex) const override
 Returns the source model index corresponding to the given proxyIndex from the sorting filter model.
 
QModelIndex mapFromSource (const QModelIndex &sourceIndex) const override
 Returns the model index in the QSortFilterProxyModel given the sourceIndex from the source model.
 
QItemSelection mapSelectionToSource (const QItemSelection &proxySelection) const override
 \reimp
 
QItemSelection mapSelectionFromSource (const QItemSelection &sourceSelection) const override
 \reimp
 
QRegularExpression filterRegularExpression () const
 
QBindable< QRegularExpressionbindableFilterRegularExpression ()
 
int filterKeyColumn () const
 
void setFilterKeyColumn (int column)
 
QBindable< int > bindableFilterKeyColumn ()
 
Qt::CaseSensitivity filterCaseSensitivity () const
 
void setFilterCaseSensitivity (Qt::CaseSensitivity cs)
 
QBindable< Qt::CaseSensitivitybindableFilterCaseSensitivity ()
 
Qt::CaseSensitivity sortCaseSensitivity () const
 
void setSortCaseSensitivity (Qt::CaseSensitivity cs)
 
QBindable< Qt::CaseSensitivitybindableSortCaseSensitivity ()
 
bool isSortLocaleAware () const
 
void setSortLocaleAware (bool on)
 
QBindable< bool > bindableIsSortLocaleAware ()
 
int sortColumn () const
 
Qt::SortOrder sortOrder () const
 
bool dynamicSortFilter () const
 
void setDynamicSortFilter (bool enable)
 
QBindable< bool > bindableDynamicSortFilter ()
 
int sortRole () const
 
void setSortRole (int role)
 
QBindable< int > bindableSortRole ()
 
int filterRole () const
 
void setFilterRole (int role)
 
QBindable< int > bindableFilterRole ()
 
bool isRecursiveFilteringEnabled () const
 
void setRecursiveFilteringEnabled (bool recursive)
 
QBindable< bool > bindableRecursiveFilteringEnabled ()
 
bool autoAcceptChildRows () const
 
void setAutoAcceptChildRows (bool accept)
 
QBindable< bool > bindableAutoAcceptChildRows ()
 
QModelIndex index (int row, int column, const QModelIndex &parent=QModelIndex()) const override
 \reimp
 
QModelIndex parent (const QModelIndex &child) const override
 \reimp
 
QModelIndex sibling (int row, int column, const QModelIndex &idx) const override
 \reimp
 
int rowCount (const QModelIndex &parent=QModelIndex()) const override
 \reimp
 
int columnCount (const QModelIndex &parent=QModelIndex()) const override
 \reimp
 
bool hasChildren (const QModelIndex &parent=QModelIndex()) const override
 \reimp
 
QVariant data (const QModelIndex &index, int role=Qt::DisplayRole) const override
 \reimp
 
bool setData (const QModelIndex &index, const QVariant &value, int role=Qt::EditRole) override
 \reimp
 
QVariant headerData (int section, Qt::Orientation orientation, int role=Qt::DisplayRole) const override
 \reimp
 
bool setHeaderData (int section, Qt::Orientation orientation, const QVariant &value, int role=Qt::EditRole) override
 \reimp
 
QMimeDatamimeData (const QModelIndexList &indexes) const override
 \reimp
 
bool dropMimeData (const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent) override
 \reimp
 
bool insertRows (int row, int count, const QModelIndex &parent=QModelIndex()) override
 \reimp
 
bool insertColumns (int column, int count, const QModelIndex &parent=QModelIndex()) override
 \reimp
 
bool removeRows (int row, int count, const QModelIndex &parent=QModelIndex()) override
 \reimp
 
bool removeColumns (int column, int count, const QModelIndex &parent=QModelIndex()) override
 \reimp
 
void fetchMore (const QModelIndex &parent) override
 \reimp
 
bool canFetchMore (const QModelIndex &parent) const override
 \reimp
 
Qt::ItemFlags flags (const QModelIndex &index) const override
 \reimp
 
QModelIndex buddy (const QModelIndex &index) const override
 \reimp
 
QModelIndexList match (const QModelIndex &start, int role, const QVariant &value, int hits=1, Qt::MatchFlags flags=Qt::MatchFlags(Qt::MatchStartsWith|Qt::MatchWrap)) const override
 \reimp
 
QSize span (const QModelIndex &index) const override
 \reimp
 
void sort (int column, Qt::SortOrder order=Qt::AscendingOrder) override
 \reimp Sorts the model by column in the given order.
 
QStringList mimeTypes () const override
 \reimp
 
Qt::DropActions supportedDropActions () const override
 \reimp
 
QObjectparent () const
 Returns a pointer to the parent object.
 
- Public Member Functions inherited from QAbstractProxyModel
 QAbstractProxyModel (QObject *parent=nullptr)
 Constructs a proxy model with the given parent.
 
 ~QAbstractProxyModel ()
 Destroys the proxy model.
 
QAbstractItemModelsourceModel () const
 Returns the model that contains the data that is available through the proxy model.
 
QBindable< QAbstractItemModel * > bindableSourceModel ()
 
bool submit () override
 \reimp
 
void revert () override
 \reimp
 
QMap< int, QVariantitemData (const QModelIndex &index) const override
 \reimp
 
bool setItemData (const QModelIndex &index, const QMap< int, QVariant > &roles) override
 \reimp
 
bool clearItemData (const QModelIndex &index) override
 \reimp
 
void sort (int column, Qt::SortOrder order=Qt::AscendingOrder) override
 \reimp
 
bool canDropMimeData (const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent) const override
 \reimp
 
Qt::DropActions supportedDragActions () const override
 \reimp
 
QHash< int, QByteArrayroleNames () const override
 \reimp
 
- Public Member Functions inherited from QAbstractItemModel
 QAbstractItemModel (QObject *parent=nullptr)
 Constructs an abstract item model with the given parent.
 
virtual ~QAbstractItemModel ()
 Destroys the abstract item model.
 
Q_INVOKABLE bool hasIndex (int row, int column, const QModelIndex &parent=QModelIndex()) const
 Returns {true} if the model returns a valid QModelIndex for row and column with parent, otherwise returns {false}.
 
Q_INVOKABLE Q_REVISION (6, 4) virtual bool insertRows(int row
 
Q_INVOKABLE Q_REVISION (6, 4) virtual bool insertColumns(int column
 
Q_INVOKABLE Q_REVISION (6, 4) virtual bool removeRows(int row
 
Q_INVOKABLE Q_REVISION (6, 4) virtual bool removeColumns(int column
 
Q_INVOKABLE Q_REVISION (6, 4) virtual bool moveRows(const QModelIndex &sourceParent
 
Q_INVOKABLE Q_REVISION (6, 4) virtual bool moveColumns(const QModelIndex &sourceParent
 
Q_INVOKABLE Q_REVISION (6, 4) inline bool insertRow(int row
 
Q_INVOKABLE Q_REVISION (6, 4) inline bool insertColumn(int column
 
Q_INVOKABLE Q_REVISION (6, 4) inline bool removeRow(int row
 
Q_INVOKABLE Q_REVISION (6, 4) inline bool removeColumn(int column
 
Q_INVOKABLE Q_REVISION (6, 4) inline bool moveRow(const QModelIndex &sourceParent
 
Q_INVOKABLE Q_REVISION (6, 4) inline bool moveColumn(const QModelIndex &sourceParent
 
Q_INVOKABLE Q_REVISION (6, 4) virtual void sort(int column
 
bool checkIndex (const QModelIndex &index, CheckIndexOptions options=CheckIndexOption::NoOption) const
 
virtual void multiData (const QModelIndex &index, QModelRoleDataSpan roleDataSpan) const
 
QObjectparent () const
 Returns a pointer to the parent object.
 
- Public Member Functions inherited from QObject
Q_INVOKABLE QObject (QObject *parent=nullptr)
 Constructs an object with parent object parent.
 
virtual ~QObject ()
 Destroys the object, deleting all its child objects.
 
virtual bool event (QEvent *event)
 This virtual function receives events to an object and should return true if the event e was recognized and processed.
 
virtual bool eventFilter (QObject *watched, QEvent *event)
 Filters events if this object has been installed as an event filter for the watched object.
 
QString objectName () const
 
Q_WEAK_OVERLOAD void setObjectName (const QString &name)
 Sets the object's name to name.
 
void setObjectName (QAnyStringView name)
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
 
QBindable< QStringbindableObjectName ()
 
bool isWidgetType () const
 Returns true if the object is a widget; otherwise returns false.
 
bool isWindowType () const
 Returns true if the object is a window; otherwise returns false.
 
bool isQuickItemType () const
 Returns true if the object is a QQuickItem; otherwise returns false.
 
bool signalsBlocked () const noexcept
 Returns true if signals are blocked; otherwise returns false.
 
bool blockSignals (bool b) noexcept
 If block is true, signals emitted by this object are blocked (i.e., emitting a signal will not invoke anything connected to it).
 
QThreadthread () const
 Returns the thread in which the object lives.
 
bool moveToThread (QThread *thread QT6_DECL_NEW_OVERLOAD_TAIL)
 Changes the thread affinity for this object and its children and returns true on success.
 
int startTimer (int interval, Qt::TimerType timerType=Qt::CoarseTimer)
 This is an overloaded function that will start a timer of type timerType and a timeout of interval milliseconds.
 
int startTimer (std::chrono::nanoseconds time, Qt::TimerType timerType=Qt::CoarseTimer)
 
void killTimer (int id)
 Kills the timer with timer identifier, id.
 
void killTimer (Qt::TimerId id)
 
template<typename T >
findChild (QAnyStringView aName, Qt::FindChildOptions options=Qt::FindChildrenRecursively) const
 Returns the child of this object that can be cast into type T and that is called name, or \nullptr if there is no such object.
 
template<typename T >
QList< T > findChildren (QAnyStringView aName, Qt::FindChildOptions options=Qt::FindChildrenRecursively) const
 Returns all children of this object with the given name that can be cast to type T, or an empty list if there are no such objects.
 
template<typename T >
findChild (Qt::FindChildOptions options=Qt::FindChildrenRecursively) const
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
 
template<typename T >
QList< T > findChildren (Qt::FindChildOptions options=Qt::FindChildrenRecursively) const
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
 
const QObjectListchildren () const
 Returns a list of child objects.
 
void setParent (QObject *parent)
 Makes the object a child of parent.
 
void installEventFilter (QObject *filterObj)
 Installs an event filter filterObj on this object.
 
void removeEventFilter (QObject *obj)
 Removes an event filter object obj from this object.
 
QMetaObject::Connection connect (const QObject *sender, const char *signal, const char *member, Qt::ConnectionType type=Qt::AutoConnection) const
 
bool disconnect (const char *signal=nullptr, const QObject *receiver=nullptr, const char *member=nullptr) const
 
bool disconnect (const QObject *receiver, const char *member=nullptr) const
 
void dumpObjectTree () const
 Dumps a tree of children to the debug output.
 
void dumpObjectInfo () const
 Dumps information about signal connections, etc.
 
bool setProperty (const char *name, const QVariant &value)
 Sets the value of the object's name property to value.
 
bool setProperty (const char *name, QVariant &&value)
 
QVariant property (const char *name) const
 Returns the value of the object's name property.
 
QList< QByteArraydynamicPropertyNames () const
 
QBindingStoragebindingStorage ()
 
const QBindingStoragebindingStorage () const
 
QObjectparent () const
 Returns a pointer to the parent object.
 
bool inherits (const char *classname) const
 Returns true if this object is an instance of a class that inherits className or a QObject subclass that inherits className; otherwise returns false.
 

Protected Member Functions

virtual bool filterAcceptsRow (int source_row, const QModelIndex &source_parent) const
 Returns true if the item in the row indicated by the given source_row and source_parent should be included in the model; otherwise returns false.
 
virtual bool filterAcceptsColumn (int source_column, const QModelIndex &source_parent) const
 Returns true if the item in the column indicated by the given source_column and source_parent should be included in the model; otherwise returns false.
 
virtual bool lessThan (const QModelIndex &source_left, const QModelIndex &source_right) const
 Returns true if the value of the item referred to by the given index source_left is less than the value of the item referred to by the given index source_right, otherwise returns false.
 
void invalidateFilter ()
 
void invalidateRowsFilter ()
 
void invalidateColumnsFilter ()
 
- Protected Member Functions inherited from QAbstractProxyModel
QModelIndex createSourceIndex (int row, int col, void *internalPtr) const
 Equivalent to calling createIndex on the source model.
 
 QAbstractProxyModel (QAbstractProxyModelPrivate &, QObject *parent)
 
- Protected Member Functions inherited from QAbstractItemModel
 QAbstractItemModel (QAbstractItemModelPrivate &dd, QObject *parent=nullptr)
 
QModelIndex createIndex (int row, int column, const void *data=nullptr) const
 Creates a model index for the given row and column with the internal pointer ptr.
 
QModelIndex createIndex (int row, int column, quintptr id) const
 Creates a model index for the given row and column with the internal identifier, id.
 
void encodeData (const QModelIndexList &indexes, QDataStream &stream) const
 
bool decodeData (int row, int column, const QModelIndex &parent, QDataStream &stream)
 
void beginInsertRows (const QModelIndex &parent, int first, int last)
 Begins a row insertion operation.
 
void endInsertRows ()
 Ends a row insertion operation.
 
void beginRemoveRows (const QModelIndex &parent, int first, int last)
 Begins a row removal operation.
 
void endRemoveRows ()
 Ends a row removal operation.
 
bool beginMoveRows (const QModelIndex &sourceParent, int sourceFirst, int sourceLast, const QModelIndex &destinationParent, int destinationRow)
 
void endMoveRows ()
 Ends a row move operation.
 
void beginInsertColumns (const QModelIndex &parent, int first, int last)
 Begins a column insertion operation.
 
void endInsertColumns ()
 Ends a column insertion operation.
 
void beginRemoveColumns (const QModelIndex &parent, int first, int last)
 Begins a column removal operation.
 
void endRemoveColumns ()
 Ends a column removal operation.
 
bool beginMoveColumns (const QModelIndex &sourceParent, int sourceFirst, int sourceLast, const QModelIndex &destinationParent, int destinationColumn)
 Begins a column move operation.
 
void endMoveColumns ()
 Ends a column move operation.
 
void beginResetModel ()
 Begins a model reset operation.
 
void endResetModel ()
 Completes a model reset operation.
 
void changePersistentIndex (const QModelIndex &from, const QModelIndex &to)
 Changes the QPersistentModelIndex that is equal to the given from model index to the given to model index.
 
void changePersistentIndexList (const QModelIndexList &from, const QModelIndexList &to)
 
QModelIndexList persistentIndexList () const
 
- Protected Member Functions inherited from QObject
QObjectsender () const
 Returns a pointer to the object that sent the signal, if called in a slot activated by a signal; otherwise it returns \nullptr.
 
int senderSignalIndex () const
 
int receivers (const char *signal) const
 Returns the number of receivers connected to the signal.
 
bool isSignalConnected (const QMetaMethod &signal) const
 
virtual void timerEvent (QTimerEvent *event)
 This event handler can be reimplemented in a subclass to receive timer events for the object.
 
virtual void childEvent (QChildEvent *event)
 This event handler can be reimplemented in a subclass to receive child events.
 
virtual void customEvent (QEvent *event)
 This event handler can be reimplemented in a subclass to receive custom events.
 
virtual void connectNotify (const QMetaMethod &signal)
 
virtual void disconnectNotify (const QMetaMethod &signal)
 
 QObject (QObjectPrivate &dd, QObject *parent=nullptr)
 

Properties

QRegularExpression filterRegularExpression
 the QRegularExpression used to filter the contents of the source model
 
int filterKeyColumn
 the column where the key used to filter the contents of the source model is read from.
 
bool dynamicSortFilter
 whether the proxy model is dynamically sorted and filtered whenever the contents of the source model change
 
Qt::CaseSensitivity filterCaseSensitivity
 the case sensitivity of the QRegularExpression pattern used to filter the contents of the source model.
 
Qt::CaseSensitivity sortCaseSensitivity
 the case sensitivity setting used for comparing strings when sorting
 
bool isSortLocaleAware
 the local aware setting used for comparing strings when sorting
 
int sortRole
 the item role that is used to query the source model's data when sorting items.
 
int filterRole
 the item role that is used to query the source model's data when filtering items.
 
bool recursiveFilteringEnabled
 whether the filter to be applied recursively on children, and for any matching child, its parents will be visible as well.
 
bool autoAcceptChildRows
 if true the proxy model will not filter out children of accepted rows, even if they themselves would be filtered out otherwise.
 
- Properties inherited from QAbstractProxyModel
QAbstractItemModelsourceModel
 the source model of this proxy model.
 
- Properties inherited from QObject
QString objectName
 the name of this object
 

Friends

class QSortFilterProxyModelLessThan
 
class QSortFilterProxyModelGreaterThan
 

Additional Inherited Members

- Public Types inherited from QAbstractItemModel
enum  LayoutChangeHint { NoLayoutChangeHint , VerticalSortHint , HorizontalSortHint }
 This enum describes the way the model changes layout. More...
 
enum class  CheckIndexOption { NoOption = 0x0000 , IndexIsValid = 0x0001 , DoNotUseParent = 0x0002 , ParentIsInvalid = 0x0004 }
 
- Static Public Member Functions inherited from QObject
static QMetaObject::Connection connect (const QObject *sender, const char *signal, const QObject *receiver, const char *member, Qt::ConnectionType=Qt::AutoConnection)
 \threadsafe
 
static QMetaObject::Connection connect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &method, Qt::ConnectionType type=Qt::AutoConnection)
 
template<typename Func1 , typename Func2 >
static QMetaObject::Connection connect (const typename QtPrivate::FunctionPointer< Func1 >::Object *sender, Func1 signal, const typename QtPrivate::ContextTypeForFunctor< Func2 >::ContextType *context, Func2 &&slot, Qt::ConnectionType type=Qt::AutoConnection)
 
template<typename Func1 , typename Func2 >
static QMetaObject::Connection connect (const typename QtPrivate::FunctionPointer< Func1 >::Object *sender, Func1 signal, Func2 &&slot)
 
static bool disconnect (const QObject *sender, const char *signal, const QObject *receiver, const char *member)
 \threadsafe
 
static bool disconnect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &member)
 
static bool disconnect (const QMetaObject::Connection &)
 Disconnect a connection.
 
template<typename Func1 , typename Func2 >
static bool disconnect (const typename QtPrivate::FunctionPointer< Func1 >::Object *sender, Func1 signal, const typename QtPrivate::FunctionPointer< Func2 >::Object *receiver, Func2 slot)
 
template<typename Func1 >
static bool disconnect (const typename QtPrivate::FunctionPointer< Func1 >::Object *sender, Func1 signal, const QObject *receiver, void **zero)
 
- Public Attributes inherited from QAbstractItemModel
Q_INVOKABLE int count
 
Q_INVOKABLE int const QModelIndexparent = QModelIndex())
 Returns the parent of the model item with the given index.
 
Q_INVOKABLE int sourceRow
 
Q_INVOKABLE int int count
 
Q_INVOKABLE int int const QModelIndexdestinationParent
 
Q_INVOKABLE int int const QModelIndex int destinationChild
 
Q_INVOKABLE int sourceColumn
 
Q_INVOKABLE const QModelIndexparent = QModelIndex())
 
Q_INVOKABLE int const QModelIndexdestinationParent
 
Q_INVOKABLE int const QModelIndex int destinationChild
 
Q_INVOKABLE Qt::SortOrder order = Qt::AscendingOrder)
 
- Protected Slots inherited from QAbstractItemModel
virtual void resetInternalData ()
 
- Protected Attributes inherited from QObject
QScopedPointer< QObjectDatad_ptr
 

Detailed Description

The QSortFilterProxyModel class provides support for sorting and filtering data passed between another model and a view.

Since
4.1

\inmodule QtCore

QSortFilterProxyModel can be used for sorting items, filtering out items, or both. The model transforms the structure of a source model by mapping the model indexes it supplies to new indexes, corresponding to different locations, for views to use. This approach allows a given source model to be restructured as far as views are concerned without requiring any transformations on the underlying data, and without duplicating the data in memory.

Let's assume that we want to sort and filter the items provided by a custom model. The code to set up the model and the view, without sorting and filtering, would look like this:

QTreeView *treeView = new QTreeView;
treeView->setModel(model);

To add sorting and filtering support to MyItemModel, we need to create a QSortFilterProxyModel, call setSourceModel() with the MyItemModel as argument, and install the QSortFilterProxyModel on the view:

MyItemModel *sourceModel = new MyItemModel(this);
proxyModel->setSourceModel(sourceModel);
treeView->setModel(proxyModel);

At this point, neither sorting nor filtering is enabled; the original data is displayed in the view. Any changes made through the QSortFilterProxyModel are applied to the original model.

The QSortFilterProxyModel acts as a wrapper for the original model. If you need to convert source \l{QModelIndex}es to sorted/filtered model indexes or vice versa, use mapToSource(), mapFromSource(), mapSelectionToSource(), and mapSelectionFromSource().

Note
By default, the model dynamically re-sorts and re-filters data whenever the original model changes. This behavior can be changed by setting the \l{QSortFilterProxyModel::dynamicSortFilter}{dynamicSortFilter} property.

The \l{itemviews/basicsortfiltermodel}{Basic Sort/Filter Model} and \l{itemviews/customsortfiltermodel}{Custom Sort/Filter Model} examples illustrate how to use QSortFilterProxyModel to perform basic sorting and filtering and how to subclass it to implement custom behavior.

Definition at line 20 of file qsortfilterproxymodel.h.

Constructor & Destructor Documentation

◆ QSortFilterProxyModel()

QSortFilterProxyModel::QSortFilterProxyModel ( QObject * parent = nullptr)
explicit

Constructs a sorting filter model with the given parent.

Definition at line 2008 of file qsortfilterproxymodel.cpp.

References QSortFilterProxyModelPrivate::_q_clearMapping(), QObjectPrivate::connect(), d, and QAbstractItemModel::modelReset().

+ Here is the call graph for this function:

◆ ~QSortFilterProxyModel()

QSortFilterProxyModel::~QSortFilterProxyModel ( )

Destroys this sorting filter model.

Definition at line 2019 of file qsortfilterproxymodel.cpp.

References d, and qDeleteAll().

+ Here is the call graph for this function:

Member Function Documentation

◆ autoAcceptChildRows()

bool QSortFilterProxyModel::autoAcceptChildRows ( ) const

Definition at line 3035 of file qsortfilterproxymodel.cpp.

References d.

◆ autoAcceptChildRowsChanged

void QSortFilterProxyModel::autoAcceptChildRowsChanged ( bool autoAcceptChildRows)
signal

This signals is emitted when the value of the autoAcceptChildRows property is changed.

Since
6.0
See also
autoAcceptChildRows

◆ bindableAutoAcceptChildRows()

QBindable< bool > QSortFilterProxyModel::bindableAutoAcceptChildRows ( )

Definition at line 3054 of file qsortfilterproxymodel.cpp.

References d.

◆ bindableDynamicSortFilter()

QBindable< bool > QSortFilterProxyModel::bindableDynamicSortFilter ( )

Definition at line 2888 of file qsortfilterproxymodel.cpp.

References d.

◆ bindableFilterCaseSensitivity()

QBindable< Qt::CaseSensitivity > QSortFilterProxyModel::bindableFilterCaseSensitivity ( )

Definition at line 2686 of file qsortfilterproxymodel.cpp.

References d.

◆ bindableFilterKeyColumn()

QBindable< int > QSortFilterProxyModel::bindableFilterKeyColumn ( )

Definition at line 2629 of file qsortfilterproxymodel.cpp.

References d.

◆ bindableFilterRegularExpression()

QBindable< QRegularExpression > QSortFilterProxyModel::bindableFilterRegularExpression ( )

Definition at line 2567 of file qsortfilterproxymodel.cpp.

References d.

◆ bindableFilterRole()

QBindable< int > QSortFilterProxyModel::bindableFilterRole ( )

Definition at line 2967 of file qsortfilterproxymodel.cpp.

References d.

◆ bindableIsSortLocaleAware()

QBindable< bool > QSortFilterProxyModel::bindableIsSortLocaleAware ( )

Definition at line 2766 of file qsortfilterproxymodel.cpp.

References d.

◆ bindableRecursiveFilteringEnabled()

QBindable< bool > QSortFilterProxyModel::bindableRecursiveFilteringEnabled ( )

Definition at line 3009 of file qsortfilterproxymodel.cpp.

References d.

◆ bindableSortCaseSensitivity()

QBindable< Qt::CaseSensitivity > QSortFilterProxyModel::bindableSortCaseSensitivity ( )

Definition at line 2726 of file qsortfilterproxymodel.cpp.

References d.

◆ bindableSortRole()

QBindable< int > QSortFilterProxyModel::bindableSortRole ( )

Definition at line 2927 of file qsortfilterproxymodel.cpp.

References d.

◆ buddy()

QModelIndex QSortFilterProxyModel::buddy ( const QModelIndex & index) const
overridevirtual

\reimp

Reimplemented from QAbstractProxyModel.

Definition at line 2460 of file qsortfilterproxymodel.cpp.

References d, mapFromSource(), mapToSource(), and QModelIndex::model().

+ Here is the call graph for this function:

◆ canFetchMore()

bool QSortFilterProxyModel::canFetchMore ( const QModelIndex & parent) const
overridevirtual

\reimp

Reimplemented from QAbstractProxyModel.

Definition at line 2444 of file qsortfilterproxymodel.cpp.

References QAbstractProxyModel::canFetchMore(), and parent().

+ Here is the call graph for this function:

◆ columnCount()

int QSortFilterProxyModel::columnCount ( const QModelIndex & parent = QModelIndex()) const
overridevirtual

\reimp

Implements QAbstractItemModel.

Definition at line 2173 of file qsortfilterproxymodel.cpp.

References QHash< QModelIndex, QSortFilterProxyModelPrivate::Mapping * >::const_iterator, d, QModelIndex::isValid(), it, mapToSource(), parent(), and QSet< T >::size().

+ Here is the call graph for this function:

◆ data()

QVariant QSortFilterProxyModel::data ( const QModelIndex & index,
int role = Qt::DisplayRole ) const
overridevirtual

\reimp

Reimplemented from QAbstractProxyModel.

Definition at line 2205 of file qsortfilterproxymodel.cpp.

References d, and mapToSource().

Referenced by CustomDataProxy::data().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ dropMimeData()

bool QSortFilterProxyModel::dropMimeData ( const QMimeData * data,
Qt::DropAction action,
int row,
int column,
const QModelIndex & parent )
overridevirtual

\reimp

Reimplemented from QAbstractProxyModel.

Definition at line 2306 of file qsortfilterproxymodel.cpp.

References QAbstractProxyModel::dropMimeData(), and parent().

+ Here is the call graph for this function:

◆ dynamicSortFilter()

bool QSortFilterProxyModel::dynamicSortFilter ( ) const

Definition at line 2865 of file qsortfilterproxymodel.cpp.

References d.

◆ dynamicSortFilterChanged

void QSortFilterProxyModel::dynamicSortFilterChanged ( bool dynamicSortFilter)
signal

◆ fetchMore()

void QSortFilterProxyModel::fetchMore ( const QModelIndex & parent)
overridevirtual

\reimp

Reimplemented from QAbstractProxyModel.

Definition at line 2436 of file qsortfilterproxymodel.cpp.

References QAbstractProxyModel::fetchMore(), and parent().

+ Here is the call graph for this function:

◆ filterAcceptsColumn()

bool QSortFilterProxyModel::filterAcceptsColumn ( int source_column,
const QModelIndex & source_parent ) const
protectedvirtual

Returns true if the item in the column indicated by the given source_column and source_parent should be included in the model; otherwise returns false.

Note
The default implementation always returns true. You must reimplement this method to get the described behavior.
See also
filterAcceptsRow(), setFilterFixedString(), setFilterRegularExpression(), setFilterWildcard()

Definition at line 3230 of file qsortfilterproxymodel.cpp.

References Q_UNUSED.

◆ filterAcceptsRow()

bool QSortFilterProxyModel::filterAcceptsRow ( int source_row,
const QModelIndex & source_parent ) const
protectedvirtual

Returns true if the item in the row indicated by the given source_row and source_parent should be included in the model; otherwise returns false.

The default implementation returns true if the value held by the relevant item matches the filter string, wildcard string or regular expression.

Note
By default, the Qt::DisplayRole is used to determine if the row should be accepted or not. This can be changed by setting the \l{QSortFilterProxyModel::filterRole}{filterRole} property.
See also
filterAcceptsColumn(), setFilterFixedString(), setFilterRegularExpression(), setFilterWildcard()

Definition at line 3196 of file qsortfilterproxymodel.cpp.

References d, QString::data(), and QModelIndex::model().

+ Here is the call graph for this function:

◆ filterCaseSensitivity()

Qt::CaseSensitivity QSortFilterProxyModel::filterCaseSensitivity ( ) const

Definition at line 2657 of file qsortfilterproxymodel.cpp.

References d.

◆ filterCaseSensitivityChanged

void QSortFilterProxyModel::filterCaseSensitivityChanged ( Qt::CaseSensitivity filterCaseSensitivity)
signal

This signal is emitted when the case sensitivity of the filter changes to filterCaseSensitivity.

Since
5.15

◆ filterKeyColumn()

int QSortFilterProxyModel::filterKeyColumn ( ) const

Definition at line 2606 of file qsortfilterproxymodel.cpp.

References d.

◆ filterRegularExpression()

QRegularExpression QSortFilterProxyModel::filterRegularExpression ( ) const

Definition at line 2561 of file qsortfilterproxymodel.cpp.

References d.

◆ filterRole()

int QSortFilterProxyModel::filterRole ( ) const

Definition at line 2949 of file qsortfilterproxymodel.cpp.

References d.

◆ filterRoleChanged

void QSortFilterProxyModel::filterRoleChanged ( int filterRole)
signal

This signal is emitted when the filter role changes to filterRole.

Since
5.15

◆ flags()

Qt::ItemFlags QSortFilterProxyModel::flags ( const QModelIndex & index) const
overridevirtual

\reimp

Reimplemented from QAbstractProxyModel.

Definition at line 2452 of file qsortfilterproxymodel.cpp.

References QAbstractProxyModel::flags().

+ Here is the call graph for this function:

◆ hasChildren()

bool QSortFilterProxyModel::hasChildren ( const QModelIndex & parent = QModelIndex()) const
overridevirtual

\reimp

Reimplemented from QAbstractProxyModel.

Definition at line 2186 of file qsortfilterproxymodel.cpp.

References d, QModelIndex::isValid(), mapToSource(), parent(), QList< T >::size(), and QSortFilterProxyModelPrivate::Mapping::source_rows.

+ Here is the call graph for this function:

◆ headerData()

QVariant QSortFilterProxyModel::headerData ( int section,
Qt::Orientation orientation,
int role = Qt::DisplayRole ) const
overridevirtual

\reimp

Reimplemented from QAbstractProxyModel.

Definition at line 2229 of file qsortfilterproxymodel.cpp.

References QHash< QModelIndex, QSortFilterProxyModelPrivate::Mapping * >::const_iterator, d, QAbstractProxyModel::headerData(), it, QSet< T >::size(), and Qt::Vertical.

+ Here is the call graph for this function:

◆ index()

QModelIndex QSortFilterProxyModel::index ( int row,
int column,
const QModelIndex & parent = QModelIndex() ) const
overridevirtual

\reimp

Implements QAbstractItemModel.

Definition at line 2112 of file qsortfilterproxymodel.cpp.

References QHash< QModelIndex, QSortFilterProxyModelPrivate::Mapping * >::const_iterator, d, it, mapToSource(), parent(), and QSet< T >::size().

+ Here is the call graph for this function:

◆ insertColumns()

bool QSortFilterProxyModel::insertColumns ( int column,
int count,
const QModelIndex & parent = QModelIndex() )
override

\reimp

Definition at line 2335 of file qsortfilterproxymodel.cpp.

References d, QModelIndex::isValid(), mapToSource(), and parent().

+ Here is the call graph for this function:

◆ insertRows()

bool QSortFilterProxyModel::insertRows ( int row,
int count,
const QModelIndex & parent = QModelIndex() )
override

\reimp

Definition at line 2315 of file qsortfilterproxymodel.cpp.

References d, QModelIndex::isValid(), mapToSource(), and parent().

+ Here is the call graph for this function:

◆ invalidate

void QSortFilterProxyModel::invalidate ( )
slot
Since
4.3

Invalidates the current sorting and filtering.

See also
invalidateFilter()

Definition at line 3067 of file qsortfilterproxymodel.cpp.

References d, emit, QAbstractItemModel::layoutAboutToBeChanged(), and QAbstractItemModel::layoutChanged().

+ Here is the call graph for this function:

◆ invalidateColumnsFilter()

void QSortFilterProxyModel::invalidateColumnsFilter ( )
protected
Since
6.0

Invalidates the current filtering for the columns.

This function should be called if you are implementing custom filtering (by filterAcceptsColumn()), and your filter parameters have changed. This differs from invalidateFilter() in that it will not invoke filterAcceptsRow(), but only filterAcceptsColumn(). You can use this instead of invalidateFilter() if you want to hide or show a column where the rows don't change.

See also
invalidate()
invalidateFilter()
invalidateRowsFilter()

Definition at line 3109 of file qsortfilterproxymodel.cpp.

References QSortFilterProxyModelPrivate::Columns, and d.

◆ invalidateFilter()

void QSortFilterProxyModel::invalidateFilter ( )
protected
Since
4.3

Invalidates the current filtering.

This function should be called if you are implementing custom filtering (e.g. filterAcceptsRow()), and your filter parameters have changed.

See also
invalidate()
invalidateColumnsFilter()
invalidateRowsFilter()

Definition at line 3087 of file qsortfilterproxymodel.cpp.

References QSortFilterProxyModelPrivate::All, and d.

◆ invalidateRowsFilter()

void QSortFilterProxyModel::invalidateRowsFilter ( )
protected
Since
6.0

Invalidates the current filtering for the rows.

This function should be called if you are implementing custom filtering (by filterAcceptsRow()), and your filter parameters have changed. This differs from invalidateFilter() in that it will not invoke filterAcceptsColumn(), but only filterAcceptsRow(). You can use this instead of invalidateFilter() if you want to hide or show a row where the columns don't change.

See also
invalidate()
invalidateFilter()
invalidateColumnsFilter()

Definition at line 3131 of file qsortfilterproxymodel.cpp.

References d, and QSortFilterProxyModelPrivate::Rows.

◆ isRecursiveFilteringEnabled()

bool QSortFilterProxyModel::isRecursiveFilteringEnabled ( ) const

Definition at line 2991 of file qsortfilterproxymodel.cpp.

References d.

◆ isSortLocaleAware()

bool QSortFilterProxyModel::isSortLocaleAware ( ) const

Definition at line 2748 of file qsortfilterproxymodel.cpp.

References d.

◆ lessThan()

bool QSortFilterProxyModel::lessThan ( const QModelIndex & source_left,
const QModelIndex & source_right ) const
protectedvirtual

Returns true if the value of the item referred to by the given index source_left is less than the value of the item referred to by the given index source_right, otherwise returns false.

This function is used as the < operator when sorting, and handles the following QVariant types:

\list

  • QMetaType::Int
  • QMetaType::UInt
  • QMetaType::LongLong
  • QMetaType::ULongLong
  • QMetaType::Float
  • QMetaType::Double
  • QMetaType::QChar
  • QMetaType::QDate
  • QMetaType::QTime
  • QMetaType::QDateTime
  • QMetaType::QString \endlist

Any other type will be converted to a QString using QVariant::toString().

Comparison of \l{QString}s is case sensitive by default; this can be changed using the \l {QSortFilterProxyModel::sortCaseSensitivity} {sortCaseSensitivity} property.

By default, the Qt::DisplayRole associated with the \l{QModelIndex}es is used for comparisons. This can be changed by setting the \l {QSortFilterProxyModel::sortRole} {sortRole} property.

Note
The indices passed in correspond to the source model.
See also
sortRole, sortCaseSensitivity, dynamicSortFilter

Definition at line 3174 of file qsortfilterproxymodel.cpp.

References d, and QAbstractItemModelPrivate::isVariantLessThan().

Referenced by QSortFilterProxyModelLessThan::operator()(), and QSortFilterProxyModelGreaterThan::operator()().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ mapFromSource()

QModelIndex QSortFilterProxyModel::mapFromSource ( const QModelIndex & sourceIndex) const
overridevirtual

Returns the model index in the QSortFilterProxyModel given the sourceIndex from the source model.

See also
mapToSource()

Implements QAbstractProxyModel.

Definition at line 3255 of file qsortfilterproxymodel.cpp.

References d.

Referenced by buddy(), and parent().

+ Here is the caller graph for this function:

◆ mapSelectionFromSource()

QItemSelection QSortFilterProxyModel::mapSelectionFromSource ( const QItemSelection & sourceSelection) const
overridevirtual

\reimp

Reimplemented from QAbstractProxyModel.

Definition at line 3272 of file qsortfilterproxymodel.cpp.

References QAbstractProxyModel::mapSelectionFromSource().

+ Here is the call graph for this function:

◆ mapSelectionToSource()

QItemSelection QSortFilterProxyModel::mapSelectionToSource ( const QItemSelection & proxySelection) const
overridevirtual

\reimp

Reimplemented from QAbstractProxyModel.

Definition at line 3264 of file qsortfilterproxymodel.cpp.

References QAbstractProxyModel::mapSelectionToSource().

+ Here is the call graph for this function:

◆ mapToSource()

QModelIndex QSortFilterProxyModel::mapToSource ( const QModelIndex & proxyIndex) const
overridevirtual

Returns the source model index corresponding to the given proxyIndex from the sorting filter model.

See also
mapFromSource()

Implements QAbstractProxyModel.

Definition at line 3243 of file qsortfilterproxymodel.cpp.

References d.

Referenced by buddy(), columnCount(), data(), hasChildren(), index(), insertColumns(), insertRows(), mimeData(), removeColumns(), removeRows(), rowCount(), setData(), and span().

+ Here is the caller graph for this function:

◆ match()

QModelIndexList QSortFilterProxyModel::match ( const QModelIndex & start,
int role,
const QVariant & value,
int hits = 1,
Qt::MatchFlags flags = Qt::MatchFlags(Qt::MatchStartsWith|Qt::MatchWrap) ) const
overridevirtual

\reimp

Reimplemented from QAbstractItemModel.

Definition at line 2475 of file qsortfilterproxymodel.cpp.

References QAbstractItemModel::match().

+ Here is the call graph for this function:

◆ mimeData()

QMimeData * QSortFilterProxyModel::mimeData ( const QModelIndexList & indexes) const
overridevirtual

\reimp

Reimplemented from QAbstractProxyModel.

Definition at line 2274 of file qsortfilterproxymodel.cpp.

References d, mapToSource(), QModelIndex::model(), QList< T >::reserve(), and QList< T >::size().

+ Here is the call graph for this function:

◆ mimeTypes()

QStringList QSortFilterProxyModel::mimeTypes ( ) const
overridevirtual

\reimp

Reimplemented from QAbstractProxyModel.

Definition at line 2287 of file qsortfilterproxymodel.cpp.

References d.

◆ parent() [1/2]

QObject * QObject::parent ( ) const
inline

Returns a pointer to the parent object.

See also
children()

Definition at line 346 of file qobject.h.

Referenced by canFetchMore(), columnCount(), dropMimeData(), fetchMore(), hasChildren(), index(), insertColumns(), insertRows(), removeColumns(), removeRows(), and rowCount().

+ Here is the caller graph for this function:

◆ parent() [2/2]

QModelIndex QSortFilterProxyModel::parent ( const QModelIndex & child) const
overridevirtual

\reimp

Implements QAbstractItemModel.

Definition at line 2129 of file qsortfilterproxymodel.cpp.

References child, QHash< QModelIndex, QSortFilterProxyModelPrivate::Mapping * >::const_iterator, QSet< T >::constEnd(), d, it, mapFromSource(), and Q_ASSERT.

+ Here is the call graph for this function:

◆ recursiveFilteringEnabledChanged

void QSortFilterProxyModel::recursiveFilteringEnabledChanged ( bool recursiveFilteringEnabled)
signal

This signal is emitted when the recursive filter setting is changed to recursiveFilteringEnabled.

Since
5.15

◆ removeColumns()

bool QSortFilterProxyModel::removeColumns ( int column,
int count,
const QModelIndex & parent = QModelIndex() )
override

\reimp

Definition at line 2397 of file qsortfilterproxymodel.cpp.

References QList< T >::at(), QAbstractItemModel::count, d, i, QModelIndex::isValid(), mapToSource(), ok, parent(), pos, and QSortFilterProxyModelPrivate::Mapping::source_columns.

+ Here is the call graph for this function:

◆ removeRows()

bool QSortFilterProxyModel::removeRows ( int row,
int count,
const QModelIndex & parent = QModelIndex() )
override

\reimp

Definition at line 2355 of file qsortfilterproxymodel.cpp.

References QList< T >::at(), QAbstractItemModel::count, d, i, QModelIndex::isValid(), mapToSource(), ok, parent(), pos, and QSortFilterProxyModelPrivate::Mapping::source_rows.

+ Here is the call graph for this function:

◆ rowCount()

int QSortFilterProxyModel::rowCount ( const QModelIndex & parent = QModelIndex()) const
overridevirtual

\reimp

Implements QAbstractItemModel.

Definition at line 2160 of file qsortfilterproxymodel.cpp.

References QHash< QModelIndex, QSortFilterProxyModelPrivate::Mapping * >::const_iterator, d, QModelIndex::isValid(), it, mapToSource(), parent(), and QSet< T >::size().

+ Here is the call graph for this function:

◆ setAutoAcceptChildRows()

void QSortFilterProxyModel::setAutoAcceptChildRows ( bool accept)

Definition at line 3041 of file qsortfilterproxymodel.cpp.

References d, and QSortFilterProxyModelPrivate::Rows.

◆ setData()

bool QSortFilterProxyModel::setData ( const QModelIndex & index,
const QVariant & value,
int role = Qt::EditRole )
overridevirtual

\reimp

Reimplemented from QAbstractProxyModel.

Definition at line 2217 of file qsortfilterproxymodel.cpp.

References d, and mapToSource().

+ Here is the call graph for this function:

◆ setDynamicSortFilter()

void QSortFilterProxyModel::setDynamicSortFilter ( bool enable)

Definition at line 2871 of file qsortfilterproxymodel.cpp.

References d.

◆ setFilterCaseSensitivity()

void QSortFilterProxyModel::setFilterCaseSensitivity ( Qt::CaseSensitivity cs)

Definition at line 2663 of file qsortfilterproxymodel.cpp.

References Qt::CaseInsensitive, QRegularExpression::CaseInsensitiveOption, d, QSortFilterProxyModelPrivate::Rows, and QRegularExpression::setPatternOptions().

+ Here is the call graph for this function:

◆ setFilterFixedString

void QSortFilterProxyModel::setFilterFixedString ( const QString & pattern)
slot

Sets the fixed string used to filter the contents of the source model to the given pattern.

This method will reset the regular expression options but respect case sensitivity.

Note
Calling this method updates the regular expression, thereby breaking the binding for \l filterRegularExpression. However it has no effect on the \l filterCaseSensitivity bindings.
See also
setFilterCaseSensitivity(), setFilterRegularExpression(), setFilterWildcard(), filterRegularExpression()

Definition at line 2837 of file qsortfilterproxymodel.cpp.

References d, QRegularExpression::escape(), and QSortFilterProxyModelPrivate::Rows.

+ Here is the call graph for this function:

◆ setFilterKeyColumn()

void QSortFilterProxyModel::setFilterKeyColumn ( int column)

Definition at line 2612 of file qsortfilterproxymodel.cpp.

References d, and QSortFilterProxyModelPrivate::Rows.

Referenced by Widget::Widget().

+ Here is the caller graph for this function:

◆ setFilterRegularExpression [1/2]

void QSortFilterProxyModel::setFilterRegularExpression ( const QRegularExpression & regularExpression)
slot

Definition at line 2573 of file qsortfilterproxymodel.cpp.

References Qt::CaseInsensitive, QRegularExpression::CaseInsensitiveOption, Qt::CaseSensitive, d, QRegularExpression::patternOptions(), and QSortFilterProxyModelPrivate::Rows.

+ Here is the call graph for this function:

◆ setFilterRegularExpression [2/2]

void QSortFilterProxyModel::setFilterRegularExpression ( const QString & pattern)
slot
Since
5.12

Sets the regular expression used to filter the contents of the source model to pattern.

This method should be preferred for new code as it will use QRegularExpression internally.

This method will reset the regular expression options but respect case sensitivity.

Note
Calling this method updates the regular expression, thereby breaking the binding for \l filterRegularExpression. However it has no effect on the \l filterCaseSensitivity bindings.
See also
setFilterCaseSensitivity(), setFilterWildcard(), setFilterFixedString(), filterRegularExpression()

Definition at line 2790 of file qsortfilterproxymodel.cpp.

References d, and QSortFilterProxyModelPrivate::Rows.

Referenced by Widget::Widget().

+ Here is the caller graph for this function:

◆ setFilterRole()

void QSortFilterProxyModel::setFilterRole ( int role)

Definition at line 2955 of file qsortfilterproxymodel.cpp.

References d, and QSortFilterProxyModelPrivate::Rows.

◆ setFilterWildcard

void QSortFilterProxyModel::setFilterWildcard ( const QString & pattern)
slot

Sets the wildcard expression used to filter the contents of the source model to the given pattern.

This method will reset the regular expression options but respect case sensitivity.

Note
Calling this method updates the regular expression, thereby breaking the binding for \l filterRegularExpression. However it has no effect on the \l filterCaseSensitivity bindings.
See also
setFilterCaseSensitivity(), setFilterRegularExpression(), setFilterFixedString(), filterRegularExpression()

Definition at line 2813 of file qsortfilterproxymodel.cpp.

References d, QSortFilterProxyModelPrivate::Rows, QRegularExpression::UnanchoredWildcardConversion, and QRegularExpression::wildcardToRegularExpression().

Referenced by main().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ setHeaderData()

bool QSortFilterProxyModel::setHeaderData ( int section,
Qt::Orientation orientation,
const QVariant & value,
int role = Qt::EditRole )
overridevirtual

\reimp

Reimplemented from QAbstractProxyModel.

Definition at line 2251 of file qsortfilterproxymodel.cpp.

References QHash< QModelIndex, QSortFilterProxyModelPrivate::Mapping * >::const_iterator, d, it, QAbstractProxyModel::setHeaderData(), QSet< T >::size(), and Qt::Vertical.

+ Here is the call graph for this function:

◆ setRecursiveFilteringEnabled()

void QSortFilterProxyModel::setRecursiveFilteringEnabled ( bool recursive)

Definition at line 2997 of file qsortfilterproxymodel.cpp.

References d, and QSortFilterProxyModelPrivate::Rows.

◆ setSortCaseSensitivity()

void QSortFilterProxyModel::setSortCaseSensitivity ( Qt::CaseSensitivity cs)

Definition at line 2714 of file qsortfilterproxymodel.cpp.

References d.

◆ setSortLocaleAware()

void QSortFilterProxyModel::setSortLocaleAware ( bool on)

Definition at line 2754 of file qsortfilterproxymodel.cpp.

References d.

◆ setSortRole()

void QSortFilterProxyModel::setSortRole ( int role)

Definition at line 2916 of file qsortfilterproxymodel.cpp.

References d.

◆ setSourceModel()

void QSortFilterProxyModel::setSourceModel ( QAbstractItemModel * sourceModel)
overridevirtual

\reimp

Reimplemented from QAbstractProxyModel.

Definition at line 2029 of file qsortfilterproxymodel.cpp.

References QSortFilterProxyModelPrivate::_q_sourceAboutToBeReset(), QSortFilterProxyModelPrivate::_q_sourceColumnsAboutToBeInserted(), QSortFilterProxyModelPrivate::_q_sourceColumnsAboutToBeMoved(), QSortFilterProxyModelPrivate::_q_sourceColumnsAboutToBeRemoved(), QSortFilterProxyModelPrivate::_q_sourceColumnsInserted(), QSortFilterProxyModelPrivate::_q_sourceColumnsMoved(), QSortFilterProxyModelPrivate::_q_sourceColumnsRemoved(), QSortFilterProxyModelPrivate::_q_sourceDataChanged(), QSortFilterProxyModelPrivate::_q_sourceHeaderDataChanged(), QSortFilterProxyModelPrivate::_q_sourceLayoutAboutToBeChanged(), QSortFilterProxyModelPrivate::_q_sourceLayoutChanged(), QSortFilterProxyModelPrivate::_q_sourceReset(), QSortFilterProxyModelPrivate::_q_sourceRowsAboutToBeInserted(), QSortFilterProxyModelPrivate::_q_sourceRowsAboutToBeMoved(), QSortFilterProxyModelPrivate::_q_sourceRowsAboutToBeRemoved(), QSortFilterProxyModelPrivate::_q_sourceRowsInserted(), QSortFilterProxyModelPrivate::_q_sourceRowsMoved(), QSortFilterProxyModelPrivate::_q_sourceRowsRemoved(), QAbstractItemModel::beginResetModel(), QAbstractItemModel::columnsAboutToBeInserted(), QAbstractItemModel::columnsAboutToBeMoved(), QAbstractItemModel::columnsAboutToBeRemoved(), QAbstractItemModel::columnsInserted(), QAbstractItemModel::columnsMoved(), QAbstractItemModel::columnsRemoved(), QObjectPrivate::connect(), connection, d, QAbstractItemModel::dataChanged(), disconnect(), QAbstractItemModel::endResetModel(), QAbstractItemModel::headerDataChanged(), QAbstractItemModel::layoutAboutToBeChanged(), QAbstractItemModel::layoutChanged(), QAbstractItemModel::modelAboutToBeReset(), QAbstractItemModel::modelReset(), QAbstractItemModel::rowsAboutToBeInserted(), QAbstractItemModel::rowsAboutToBeMoved(), QAbstractItemModel::rowsAboutToBeRemoved(), QAbstractItemModel::rowsInserted(), QAbstractItemModel::rowsMoved(), QAbstractItemModel::rowsRemoved(), QAbstractProxyModel::setSourceModel(), and QAbstractProxyModel::sourceModel.

Referenced by Widget::Widget().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ sibling()

QModelIndex QSortFilterProxyModel::sibling ( int row,
int column,
const QModelIndex & idx ) const
overridevirtual

\reimp

Reimplemented from QAbstractProxyModel.

Definition at line 2144 of file qsortfilterproxymodel.cpp.

References QHash< QModelIndex, QSortFilterProxyModelPrivate::Mapping * >::const_iterator, d, it, and QSet< T >::size().

+ Here is the call graph for this function:

◆ sort()

void QSortFilterProxyModel::sort ( int column,
Qt::SortOrder order = Qt::AscendingOrder )
override

\reimp Sorts the model by column in the given order.

If the sort column is less than zero, the model will be sorted by source model row in the given order.

Definition at line 2500 of file qsortfilterproxymodel.cpp.

References d, and QAbstractItemModel::order.

Referenced by Widget::Widget().

+ Here is the caller graph for this function:

◆ sortCaseSensitivity()

Qt::CaseSensitivity QSortFilterProxyModel::sortCaseSensitivity ( ) const

Definition at line 2708 of file qsortfilterproxymodel.cpp.

References d.

◆ sortCaseSensitivityChanged

void QSortFilterProxyModel::sortCaseSensitivityChanged ( Qt::CaseSensitivity sortCaseSensitivity)
signal

This signal is emitted when the case sensitivity for sorting changes to sortCaseSensitivity.

Since
5.15

◆ sortColumn()

int QSortFilterProxyModel::sortColumn ( ) const
Since
4.5
Returns
the column currently used for sorting

This returns the most recently used sort column. The default value is -1, which means that this proxy model does not sort.

See also
sort()

Definition at line 2520 of file qsortfilterproxymodel.cpp.

References d.

◆ sortLocaleAwareChanged

void QSortFilterProxyModel::sortLocaleAwareChanged ( bool sortLocaleAware)
signal

This signal is emitted when the locale aware setting changes to sortLocaleAware.

Since
5.15

◆ sortOrder()

Qt::SortOrder QSortFilterProxyModel::sortOrder ( ) const
Since
4.5
Returns
the order currently used for sorting

This returns the most recently used sort order. The default value is Qt::AscendingOrder.

See also
sort()

Definition at line 2535 of file qsortfilterproxymodel.cpp.

References d.

◆ sortRole()

int QSortFilterProxyModel::sortRole ( ) const

Definition at line 2910 of file qsortfilterproxymodel.cpp.

References d.

◆ sortRoleChanged

void QSortFilterProxyModel::sortRoleChanged ( int sortRole)
signal

This signal is emitted when the sort role changes to sortRole.

Since
5.15

◆ span()

QSize QSortFilterProxyModel::span ( const QModelIndex & index) const
overridevirtual

\reimp

Reimplemented from QAbstractProxyModel.

Definition at line 2485 of file qsortfilterproxymodel.cpp.

References d, and mapToSource().

+ Here is the call graph for this function:

◆ supportedDropActions()

Qt::DropActions QSortFilterProxyModel::supportedDropActions ( ) const
overridevirtual

\reimp

Reimplemented from QAbstractProxyModel.

Definition at line 2296 of file qsortfilterproxymodel.cpp.

References d.

Friends And Related Symbol Documentation

◆ QSortFilterProxyModelGreaterThan

friend class QSortFilterProxyModelGreaterThan
friend

Definition at line 23 of file qsortfilterproxymodel.h.

◆ QSortFilterProxyModelLessThan

friend class QSortFilterProxyModelLessThan
friend

Definition at line 22 of file qsortfilterproxymodel.h.

Property Documentation

◆ autoAcceptChildRows

QSortFilterProxyModel::autoAcceptChildRows
readwrite

if true the proxy model will not filter out children of accepted rows, even if they themselves would be filtered out otherwise.

Since
6.0

The default value is false.

See also
recursiveFilteringEnabled
filterAcceptsRow()

Definition at line 47 of file qsortfilterproxymodel.h.

◆ dynamicSortFilter

QSortFilterProxyModel::dynamicSortFilter
readwrite

whether the proxy model is dynamically sorted and filtered whenever the contents of the source model change

Since
4.2

Note that you should not update the source model through the proxy model when dynamicSortFilter is true. For instance, if you set the proxy model on a QComboBox, then using functions that update the model, e.g., \l{QComboBox::}{addItem()}, will not work as expected. An alternative is to set dynamicSortFilter to false and call \l{QSortFilterProxyModel::}{sort()} after adding items to the QComboBox.

The default value is true.

See also
sortColumn()

Definition at line 30 of file qsortfilterproxymodel.h.

◆ filterCaseSensitivity

QSortFilterProxyModel::filterCaseSensitivity
readwrite

the case sensitivity of the QRegularExpression pattern used to filter the contents of the source model.

By default, the filter is case sensitive.

Note
Setting this property propagates the new case sensitivity to the \l filterRegularExpression property, and so breaks its binding. Likewise explicitly setting \l filterRegularExpression changes the current case sensitivity, thereby breaking its binding.
See also
filterRegularExpression, sortCaseSensitivity

Definition at line 32 of file qsortfilterproxymodel.h.

◆ filterKeyColumn

QSortFilterProxyModel::filterKeyColumn
readwrite

the column where the key used to filter the contents of the source model is read from.

The default value is 0. If the value is -1, the keys will be read from all columns.

Definition at line 28 of file qsortfilterproxymodel.h.

◆ filterRegularExpression

QSortFilterProxyModel::filterRegularExpression
readwrite

the QRegularExpression used to filter the contents of the source model

Since
5.12

Setting this property through the QRegularExpression overload overwrites the current \l{QSortFilterProxyModel::filterCaseSensitivity}{filterCaseSensitivity}. By default, the QRegularExpression is an empty string matching all contents.

If no QRegularExpression or an empty string is set, everything in the source model will be accepted.

Note
Setting this property propagates the case sensitivity of the new regular expression to the \l filterCaseSensitivity property, and so breaks its binding. Likewise explicitly setting \l filterCaseSensitivity changes the case sensitivity of the current regular expression, thereby breaking its binding.
See also
filterCaseSensitivity, setFilterWildcard(), setFilterFixedString()

Definition at line 26 of file qsortfilterproxymodel.h.

◆ filterRole

QSortFilterProxyModel::filterRole
readwrite

the item role that is used to query the source model's data when filtering items.

Since
4.2

The default value is Qt::DisplayRole.

See also
filterAcceptsRow()

Definition at line 42 of file qsortfilterproxymodel.h.

◆ isSortLocaleAware

QSortFilterProxyModel::isSortLocaleAware
readwrite

the local aware setting used for comparing strings when sorting

Since
4.3

By default, sorting is not local aware.

See also
sortCaseSensitivity, lessThan()

Definition at line 38 of file qsortfilterproxymodel.h.

◆ recursiveFilteringEnabled

QSortFilterProxyModel::recursiveFilteringEnabled
readwrite

whether the filter to be applied recursively on children, and for any matching child, its parents will be visible as well.

Since
5.10

The default value is false.

See also
autoAcceptChildRows
filterAcceptsRow()

Definition at line 44 of file qsortfilterproxymodel.h.

◆ sortCaseSensitivity

QSortFilterProxyModel::sortCaseSensitivity
readwrite

the case sensitivity setting used for comparing strings when sorting

Since
4.2

By default, sorting is case sensitive.

See also
filterCaseSensitivity, lessThan()

Definition at line 35 of file qsortfilterproxymodel.h.

◆ sortRole

QSortFilterProxyModel::sortRole
readwrite

the item role that is used to query the source model's data when sorting items.

Since
4.2

The default value is Qt::DisplayRole.

See also
lessThan()

Definition at line 40 of file qsortfilterproxymodel.h.


The documentation for this class was generated from the following files: