Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
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 Types

enum class  Direction { Rows = 0x01 , Columns = 0x02 , Both = Rows | Columns }
 
- 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 }
 

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 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 beginFilterChange ()
 
void endFilterChange (Directions directions=Direction::Both)
 
- 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

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

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:

QTreeView *treeView = new QTreeView;
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.

Member Enumeration Documentation

◆ Direction

Since
6.10

This enum is used to specify the direction to which a custom filter applies when the filter parameters are changed.

\value Rows The filter applies to \l{filterAcceptsRow()}{rows} \value Columns The filter applies to \l{filterAcceptsColumn()}{columns} \value Both The filter applies to both rows and columns

See also
beginFilterChange(), endFilterChange()
Enumerator
Rows 
Columns 
Both 

Definition at line 104 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 2015 of file qsortfilterproxymodel.cpp.

◆ ~QSortFilterProxyModel()

QSortFilterProxyModel::~QSortFilterProxyModel ( )

Destroys this sorting filter model.

Definition at line 2026 of file qsortfilterproxymodel.cpp.

Member Function Documentation

◆ autoAcceptChildRows()

bool QSortFilterProxyModel::autoAcceptChildRows ( ) const

Definition at line 3044 of file qsortfilterproxymodel.cpp.

◆ 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

◆ beginFilterChange()

void QSortFilterProxyModel::beginFilterChange ( )
protected
Since
6.9

Prepares a change of the filter.

This function should be called if you are implementing custom filtering (e.g. filterAcceptsRow()), and your filter parameter is about to be changed.

Once the filter has been changed, call endFilterChange() with Direction::Rows for row-filters, Direction::Columns for column-filters, or Direction::Columns|DirectionRows if both rows and columns are filtered.

See also
endFilterChange()

Definition at line 3101 of file qsortfilterproxymodel.cpp.

◆ bindableAutoAcceptChildRows()

QBindable< bool > QSortFilterProxyModel::bindableAutoAcceptChildRows ( )

Definition at line 3063 of file qsortfilterproxymodel.cpp.

◆ bindableDynamicSortFilter()

QBindable< bool > QSortFilterProxyModel::bindableDynamicSortFilter ( )

Definition at line 2897 of file qsortfilterproxymodel.cpp.

◆ bindableFilterCaseSensitivity()

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

Definition at line 2695 of file qsortfilterproxymodel.cpp.

◆ bindableFilterKeyColumn()

QBindable< int > QSortFilterProxyModel::bindableFilterKeyColumn ( )

Definition at line 2638 of file qsortfilterproxymodel.cpp.

◆ bindableFilterRegularExpression()

QBindable< QRegularExpression > QSortFilterProxyModel::bindableFilterRegularExpression ( )

Definition at line 2576 of file qsortfilterproxymodel.cpp.

◆ bindableFilterRole()

QBindable< int > QSortFilterProxyModel::bindableFilterRole ( )

Definition at line 2976 of file qsortfilterproxymodel.cpp.

◆ bindableIsSortLocaleAware()

QBindable< bool > QSortFilterProxyModel::bindableIsSortLocaleAware ( )

Definition at line 2775 of file qsortfilterproxymodel.cpp.

◆ bindableRecursiveFilteringEnabled()

QBindable< bool > QSortFilterProxyModel::bindableRecursiveFilteringEnabled ( )

Definition at line 3018 of file qsortfilterproxymodel.cpp.

◆ bindableSortCaseSensitivity()

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

Definition at line 2735 of file qsortfilterproxymodel.cpp.

◆ bindableSortRole()

QBindable< int > QSortFilterProxyModel::bindableSortRole ( )

Definition at line 2936 of file qsortfilterproxymodel.cpp.

◆ buddy()

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

\reimp

Reimplemented from QAbstractProxyModel.

Definition at line 2467 of file qsortfilterproxymodel.cpp.

◆ canFetchMore()

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

\reimp

Reimplemented from QAbstractProxyModel.

Definition at line 2451 of file qsortfilterproxymodel.cpp.

◆ columnCount()

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

\reimp

Implements QAbstractItemModel.

Definition at line 2180 of file qsortfilterproxymodel.cpp.

◆ data()

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

\reimp

Reimplemented from QAbstractProxyModel.

Definition at line 2212 of file qsortfilterproxymodel.cpp.

◆ 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 2313 of file qsortfilterproxymodel.cpp.

◆ dynamicSortFilter()

bool QSortFilterProxyModel::dynamicSortFilter ( ) const

Definition at line 2874 of file qsortfilterproxymodel.cpp.

◆ dynamicSortFilterChanged

void QSortFilterProxyModel::dynamicSortFilterChanged ( bool dynamicSortFilter)
signal

◆ endFilterChange()

void QSortFilterProxyModel::endFilterChange ( Directions directions = Direction::Both)
protected
Since
6.10

Invalidates the current filtering after the filter parameter has changed.

This function should be called if you implement custom filtering (e.g. filterAcceptsRow()), and your filter parameters have changed. The directions parameter specifies whether the custom filter impacts rows, columns, or both.

Call beginFilterChange() when the filter parameter is about to change, and follow with a call to this function once the filter parameters have been changed. Call with directions set to Direction::Rows for row-filters (i.e. filterAcceptsRow() is implemented), Direction::Columns for column-filters (i.e. filterAcceptsColumn() is implemented), or {Direction::Both} if both filter functions are implemented.

Definition at line 3207 of file qsortfilterproxymodel.cpp.

◆ fetchMore()

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

\reimp

Reimplemented from QAbstractProxyModel.

Definition at line 2443 of file qsortfilterproxymodel.cpp.

◆ 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 3306 of file qsortfilterproxymodel.cpp.

◆ 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()

Reimplemented in BookmarkTreeModel.

Definition at line 3272 of file qsortfilterproxymodel.cpp.

◆ filterCaseSensitivity()

Qt::CaseSensitivity QSortFilterProxyModel::filterCaseSensitivity ( ) const

Definition at line 2666 of file qsortfilterproxymodel.cpp.

◆ 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 2615 of file qsortfilterproxymodel.cpp.

◆ filterRegularExpression()

QRegularExpression QSortFilterProxyModel::filterRegularExpression ( ) const

Definition at line 2570 of file qsortfilterproxymodel.cpp.

◆ filterRole()

int QSortFilterProxyModel::filterRole ( ) const

Definition at line 2958 of file qsortfilterproxymodel.cpp.

◆ 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 2459 of file qsortfilterproxymodel.cpp.

◆ hasChildren()

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

\reimp

Reimplemented from QAbstractProxyModel.

Definition at line 2193 of file qsortfilterproxymodel.cpp.

◆ headerData()

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

◆ index()

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

\reimp

Implements QAbstractItemModel.

Definition at line 2119 of file qsortfilterproxymodel.cpp.

◆ insertColumns()

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

\reimp

Definition at line 2342 of file qsortfilterproxymodel.cpp.

◆ insertRows()

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

\reimp

Definition at line 2322 of file qsortfilterproxymodel.cpp.

◆ invalidate

void QSortFilterProxyModel::invalidate ( )
slot
Since
4.3

Invalidates the current sorting and filtering.

See also
beginFilterChange(), endFilterChange()

Definition at line 3076 of file qsortfilterproxymodel.cpp.

◆ isRecursiveFilteringEnabled()

bool QSortFilterProxyModel::isRecursiveFilteringEnabled ( ) const

Definition at line 3000 of file qsortfilterproxymodel.cpp.

◆ isSortLocaleAware()

bool QSortFilterProxyModel::isSortLocaleAware ( ) const

Definition at line 2757 of file qsortfilterproxymodel.cpp.

◆ 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

Reimplemented in ServicesProxyModel.

Definition at line 3250 of file qsortfilterproxymodel.cpp.

◆ 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 3331 of file qsortfilterproxymodel.cpp.

◆ mapSelectionFromSource()

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

\reimp

Reimplemented from QAbstractProxyModel.

Definition at line 3348 of file qsortfilterproxymodel.cpp.

◆ mapSelectionToSource()

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

\reimp

Reimplemented from QAbstractProxyModel.

Definition at line 3340 of file qsortfilterproxymodel.cpp.

◆ 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 3319 of file qsortfilterproxymodel.cpp.

◆ 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 2482 of file qsortfilterproxymodel.cpp.

◆ mimeData()

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

\reimp

Reimplemented from QAbstractProxyModel.

Definition at line 2281 of file qsortfilterproxymodel.cpp.

◆ mimeTypes()

QStringList QSortFilterProxyModel::mimeTypes ( ) const
overridevirtual

\reimp

Reimplemented from QAbstractProxyModel.

Definition at line 2294 of file qsortfilterproxymodel.cpp.

◆ parent() [1/2]

QObject * QObject::parent ( ) const
inline

Returns a pointer to the parent object.

See also
children()

Definition at line 348 of file qobject.h.

◆ parent() [2/2]

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

\reimp

Implements QAbstractItemModel.

Definition at line 2136 of file qsortfilterproxymodel.cpp.

◆ 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 2404 of file qsortfilterproxymodel.cpp.

◆ removeRows()

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

\reimp

Definition at line 2362 of file qsortfilterproxymodel.cpp.

◆ rowCount()

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

\reimp

Implements QAbstractItemModel.

Definition at line 2167 of file qsortfilterproxymodel.cpp.

◆ setAutoAcceptChildRows()

void QSortFilterProxyModel::setAutoAcceptChildRows ( bool accept)

Definition at line 3050 of file qsortfilterproxymodel.cpp.

◆ setData()

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

\reimp

Reimplemented from QAbstractProxyModel.

Definition at line 2224 of file qsortfilterproxymodel.cpp.

◆ setDynamicSortFilter()

void QSortFilterProxyModel::setDynamicSortFilter ( bool enable)

Definition at line 2880 of file qsortfilterproxymodel.cpp.

◆ setFilterCaseSensitivity()

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

Definition at line 2672 of file qsortfilterproxymodel.cpp.

◆ 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 2846 of file qsortfilterproxymodel.cpp.

◆ setFilterKeyColumn()

void QSortFilterProxyModel::setFilterKeyColumn ( int column)

Definition at line 2621 of file qsortfilterproxymodel.cpp.

◆ setFilterRegularExpression [1/2]

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

Definition at line 2582 of file qsortfilterproxymodel.cpp.

◆ 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 2799 of file qsortfilterproxymodel.cpp.

◆ setFilterRole()

void QSortFilterProxyModel::setFilterRole ( int role)

Definition at line 2964 of file qsortfilterproxymodel.cpp.

◆ 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 2822 of file qsortfilterproxymodel.cpp.

◆ setHeaderData()

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

\reimp

Reimplemented from QAbstractProxyModel.

Definition at line 2258 of file qsortfilterproxymodel.cpp.

◆ setRecursiveFilteringEnabled()

void QSortFilterProxyModel::setRecursiveFilteringEnabled ( bool recursive)

Definition at line 3006 of file qsortfilterproxymodel.cpp.

◆ setSortCaseSensitivity()

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

Definition at line 2723 of file qsortfilterproxymodel.cpp.

◆ setSortLocaleAware()

void QSortFilterProxyModel::setSortLocaleAware ( bool on)

Definition at line 2763 of file qsortfilterproxymodel.cpp.

◆ setSortRole()

void QSortFilterProxyModel::setSortRole ( int role)

Definition at line 2925 of file qsortfilterproxymodel.cpp.

◆ setSourceModel()

void QSortFilterProxyModel::setSourceModel ( QAbstractItemModel * sourceModel)
overridevirtual

\reimp

Reimplemented from QAbstractProxyModel.

Definition at line 2036 of file qsortfilterproxymodel.cpp.

◆ sibling()

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

\reimp

Reimplemented from QAbstractProxyModel.

Definition at line 2151 of file qsortfilterproxymodel.cpp.

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

See also
sortColumn()

Definition at line 2509 of file qsortfilterproxymodel.cpp.

◆ sortCaseSensitivity()

Qt::CaseSensitivity QSortFilterProxyModel::sortCaseSensitivity ( ) const

Definition at line 2717 of file qsortfilterproxymodel.cpp.

◆ 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 2529 of file qsortfilterproxymodel.cpp.

◆ 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 2544 of file qsortfilterproxymodel.cpp.

◆ sortRole()

int QSortFilterProxyModel::sortRole ( ) const

Definition at line 2919 of file qsortfilterproxymodel.cpp.

◆ 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 2492 of file qsortfilterproxymodel.cpp.

◆ supportedDropActions()

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

\reimp

Reimplemented from QAbstractProxyModel.

Definition at line 2303 of file qsortfilterproxymodel.cpp.

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

bool 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

bool 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

Qt::CaseSensitivity 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

int 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

QRegularExpression 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

int 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

bool 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

bool 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

Qt::CaseSensitivity 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

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