![]() |
Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
|
The QSortFilterProxyModel class provides support for sorting and filtering data passed between another model and a view. More...
#include <qsortfilterproxymodel.h>
Public Types | |
enum class | Direction { Rows = 0x01 , Columns = 0x02 , Both = Rows | Columns } |
![]() | |
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 ®ularExpression) |
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 () |
![]() | |
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. | |
![]() | |
void | sourceModelChanged (QPrivateSignal) |
![]() | |
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) |
![]() | |
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< QRegularExpression > | bindableFilterRegularExpression () |
int | filterKeyColumn () const |
void | setFilterKeyColumn (int column) |
QBindable< int > | bindableFilterKeyColumn () |
Qt::CaseSensitivity | filterCaseSensitivity () const |
void | setFilterCaseSensitivity (Qt::CaseSensitivity cs) |
QBindable< Qt::CaseSensitivity > | bindableFilterCaseSensitivity () |
Qt::CaseSensitivity | sortCaseSensitivity () const |
void | setSortCaseSensitivity (Qt::CaseSensitivity cs) |
QBindable< Qt::CaseSensitivity > | bindableSortCaseSensitivity () |
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 | |
QMimeData * | mimeData (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 | |
QObject * | parent () const |
Returns a pointer to the parent object. | |
![]() | |
QAbstractProxyModel (QObject *parent=nullptr) | |
Constructs a proxy model with the given parent. | |
~QAbstractProxyModel () | |
Destroys the proxy model. | |
QAbstractItemModel * | sourceModel () 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, QVariant > | itemData (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, QByteArray > | roleNames () const override |
\reimp | |
![]() | |
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 |
QObject * | parent () const |
Returns a pointer to the parent object. | |
![]() | |
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< QString > | bindableObjectName () |
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). | |
QThread * | thread () 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> | |
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> | |
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 QObjectList & | children () 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< QByteArray > | dynamicPropertyNames () const |
QBindingStorage * | bindingStorage () |
const QBindingStorage * | bindingStorage () const |
QObject * | parent () 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) |
![]() | |
QModelIndex | createSourceIndex (int row, int col, void *internalPtr) const |
Equivalent to calling createIndex on the source model. | |
QAbstractProxyModel (QAbstractProxyModelPrivate &, QObject *parent) | |
![]() | |
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 |
![]() | |
QObject * | sender () 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. | |
![]() | |
QAbstractItemModel * | sourceModel |
the source model of this proxy model. | |
![]() | |
QString | objectName |
the name of this object | |
Friends | |
class | QSortFilterProxyModelLessThan |
class | QSortFilterProxyModelGreaterThan |
Additional Inherited Members | |
![]() | |
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) |
![]() | |
Q_INVOKABLE int | count |
Q_INVOKABLE int const QModelIndex & | parent = 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 QModelIndex & | destinationParent |
Q_INVOKABLE int int const QModelIndex int | destinationChild |
Q_INVOKABLE int | sourceColumn |
Q_INVOKABLE const QModelIndex & | parent = QModelIndex()) |
Q_INVOKABLE int const QModelIndex & | destinationParent |
Q_INVOKABLE int const QModelIndex int | destinationChild |
Q_INVOKABLE Qt::SortOrder | order = Qt::AscendingOrder) |
![]() | |
virtual void | resetInternalData () |
![]() | |
QScopedPointer< QObjectData > | d_ptr |
![]() | |
template< class T > T | qobject_cast (const QObject *object) |
Returns the given object cast to type T if the object is of type T (or of a subclass); otherwise returns \nullptr. | |
template< typename T > T | qFindChildqFindChildren (const QObject *obj, const QString &name)() |
template< typename T > QList< T > | qFindChildrenqFindChildren (const QObject *obj, const QString &name)() |
QObjectList | |
\macro Q_CLASSINFO(Name, Value) | |
The QSortFilterProxyModel class provides support for sorting and filtering data passed between another model and a view.
\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:
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:
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().
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.
|
strong |
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
Enumerator | |
---|---|
Rows | |
Columns | |
Both |
Definition at line 104 of file qsortfilterproxymodel.h.
|
explicit |
Constructs a sorting filter model with the given parent.
Definition at line 2015 of file qsortfilterproxymodel.cpp.
QSortFilterProxyModel::~QSortFilterProxyModel | ( | ) |
Destroys this sorting filter model.
Definition at line 2026 of file qsortfilterproxymodel.cpp.
bool QSortFilterProxyModel::autoAcceptChildRows | ( | ) | const |
Definition at line 3044 of file qsortfilterproxymodel.cpp.
|
signal |
This signals is emitted when the value of the autoAcceptChildRows property is changed.
|
protected |
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.
Definition at line 3101 of file qsortfilterproxymodel.cpp.
QBindable< bool > QSortFilterProxyModel::bindableAutoAcceptChildRows | ( | ) |
Definition at line 3063 of file qsortfilterproxymodel.cpp.
QBindable< bool > QSortFilterProxyModel::bindableDynamicSortFilter | ( | ) |
Definition at line 2897 of file qsortfilterproxymodel.cpp.
QBindable< Qt::CaseSensitivity > QSortFilterProxyModel::bindableFilterCaseSensitivity | ( | ) |
Definition at line 2695 of file qsortfilterproxymodel.cpp.
QBindable< int > QSortFilterProxyModel::bindableFilterKeyColumn | ( | ) |
Definition at line 2638 of file qsortfilterproxymodel.cpp.
QBindable< QRegularExpression > QSortFilterProxyModel::bindableFilterRegularExpression | ( | ) |
Definition at line 2576 of file qsortfilterproxymodel.cpp.
QBindable< int > QSortFilterProxyModel::bindableFilterRole | ( | ) |
Definition at line 2976 of file qsortfilterproxymodel.cpp.
QBindable< bool > QSortFilterProxyModel::bindableIsSortLocaleAware | ( | ) |
Definition at line 2775 of file qsortfilterproxymodel.cpp.
QBindable< bool > QSortFilterProxyModel::bindableRecursiveFilteringEnabled | ( | ) |
Definition at line 3018 of file qsortfilterproxymodel.cpp.
QBindable< Qt::CaseSensitivity > QSortFilterProxyModel::bindableSortCaseSensitivity | ( | ) |
Definition at line 2735 of file qsortfilterproxymodel.cpp.
QBindable< int > QSortFilterProxyModel::bindableSortRole | ( | ) |
Definition at line 2936 of file qsortfilterproxymodel.cpp.
|
overridevirtual |
\reimp
Reimplemented from QAbstractProxyModel.
Definition at line 2467 of file qsortfilterproxymodel.cpp.
|
overridevirtual |
\reimp
Reimplemented from QAbstractProxyModel.
Definition at line 2451 of file qsortfilterproxymodel.cpp.
|
overridevirtual |
|
overridevirtual |
\reimp
Reimplemented from QAbstractProxyModel.
Definition at line 2212 of file qsortfilterproxymodel.cpp.
|
overridevirtual |
\reimp
Reimplemented from QAbstractProxyModel.
Definition at line 2313 of file qsortfilterproxymodel.cpp.
bool QSortFilterProxyModel::dynamicSortFilter | ( | ) | const |
Definition at line 2874 of file qsortfilterproxymodel.cpp.
|
signal |
|
protected |
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.
|
overridevirtual |
\reimp
Reimplemented from QAbstractProxyModel.
Definition at line 2443 of file qsortfilterproxymodel.cpp.
|
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
.
true
. You must reimplement this method to get the described behavior.Definition at line 3306 of file qsortfilterproxymodel.cpp.
|
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.
Reimplemented in BookmarkTreeModel.
Definition at line 3272 of file qsortfilterproxymodel.cpp.
Qt::CaseSensitivity QSortFilterProxyModel::filterCaseSensitivity | ( | ) | const |
Definition at line 2666 of file qsortfilterproxymodel.cpp.
|
signal |
This signal is emitted when the case sensitivity of the filter changes to filterCaseSensitivity.
int QSortFilterProxyModel::filterKeyColumn | ( | ) | const |
Definition at line 2615 of file qsortfilterproxymodel.cpp.
QRegularExpression QSortFilterProxyModel::filterRegularExpression | ( | ) | const |
Definition at line 2570 of file qsortfilterproxymodel.cpp.
int QSortFilterProxyModel::filterRole | ( | ) | const |
Definition at line 2958 of file qsortfilterproxymodel.cpp.
|
signal |
This signal is emitted when the filter role changes to filterRole.
|
overridevirtual |
\reimp
Reimplemented from QAbstractProxyModel.
Definition at line 2459 of file qsortfilterproxymodel.cpp.
|
overridevirtual |
\reimp
Reimplemented from QAbstractProxyModel.
Definition at line 2193 of file qsortfilterproxymodel.cpp.
|
overridevirtual |
\reimp
Reimplemented from QAbstractProxyModel.
Reimplemented in ServicesProxyModel, SortedContextsModel, SortedContextsModel, SortedMessagesModel, and SortedMessagesModel.
Definition at line 2236 of file qsortfilterproxymodel.cpp.
|
overridevirtual |
|
override |
\reimp
Definition at line 2342 of file qsortfilterproxymodel.cpp.
|
override |
\reimp
Definition at line 2322 of file qsortfilterproxymodel.cpp.
|
slot |
Invalidates the current sorting and filtering.
Definition at line 3076 of file qsortfilterproxymodel.cpp.
bool QSortFilterProxyModel::isRecursiveFilteringEnabled | ( | ) | const |
Definition at line 3000 of file qsortfilterproxymodel.cpp.
bool QSortFilterProxyModel::isSortLocaleAware | ( | ) | const |
Definition at line 2757 of file qsortfilterproxymodel.cpp.
|
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
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.
Reimplemented in ServicesProxyModel.
Definition at line 3250 of file qsortfilterproxymodel.cpp.
|
overridevirtual |
Returns the model index in the QSortFilterProxyModel given the sourceIndex from the source model.
Implements QAbstractProxyModel.
Definition at line 3331 of file qsortfilterproxymodel.cpp.
|
overridevirtual |
\reimp
Reimplemented from QAbstractProxyModel.
Definition at line 3348 of file qsortfilterproxymodel.cpp.
|
overridevirtual |
\reimp
Reimplemented from QAbstractProxyModel.
Definition at line 3340 of file qsortfilterproxymodel.cpp.
|
overridevirtual |
Returns the source model index corresponding to the given proxyIndex from the sorting filter model.
Implements QAbstractProxyModel.
Definition at line 3319 of file qsortfilterproxymodel.cpp.
|
overridevirtual |
\reimp
Reimplemented from QAbstractItemModel.
Definition at line 2482 of file qsortfilterproxymodel.cpp.
|
overridevirtual |
\reimp
Reimplemented from QAbstractProxyModel.
Definition at line 2281 of file qsortfilterproxymodel.cpp.
|
overridevirtual |
\reimp
Reimplemented from QAbstractProxyModel.
Definition at line 2294 of file qsortfilterproxymodel.cpp.
|
inline |
Returns a pointer to the parent object.
|
overridevirtual |
|
signal |
This signal is emitted when the recursive filter setting is changed to recursiveFilteringEnabled.
|
override |
\reimp
Definition at line 2404 of file qsortfilterproxymodel.cpp.
|
override |
\reimp
Definition at line 2362 of file qsortfilterproxymodel.cpp.
|
overridevirtual |
void QSortFilterProxyModel::setAutoAcceptChildRows | ( | bool | accept | ) |
Definition at line 3050 of file qsortfilterproxymodel.cpp.
|
overridevirtual |
\reimp
Reimplemented from QAbstractProxyModel.
Definition at line 2224 of file qsortfilterproxymodel.cpp.
void QSortFilterProxyModel::setDynamicSortFilter | ( | bool | enable | ) |
Definition at line 2880 of file qsortfilterproxymodel.cpp.
void QSortFilterProxyModel::setFilterCaseSensitivity | ( | Qt::CaseSensitivity | cs | ) |
Definition at line 2672 of file qsortfilterproxymodel.cpp.
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.
Definition at line 2846 of file qsortfilterproxymodel.cpp.
void QSortFilterProxyModel::setFilterKeyColumn | ( | int | column | ) |
Definition at line 2621 of file qsortfilterproxymodel.cpp.
|
slot |
Definition at line 2582 of file qsortfilterproxymodel.cpp.
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.
Definition at line 2799 of file qsortfilterproxymodel.cpp.
void QSortFilterProxyModel::setFilterRole | ( | int | role | ) |
Definition at line 2964 of file qsortfilterproxymodel.cpp.
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.
Definition at line 2822 of file qsortfilterproxymodel.cpp.
|
overridevirtual |
\reimp
Reimplemented from QAbstractProxyModel.
Definition at line 2258 of file qsortfilterproxymodel.cpp.
void QSortFilterProxyModel::setRecursiveFilteringEnabled | ( | bool | recursive | ) |
Definition at line 3006 of file qsortfilterproxymodel.cpp.
void QSortFilterProxyModel::setSortCaseSensitivity | ( | Qt::CaseSensitivity | cs | ) |
Definition at line 2723 of file qsortfilterproxymodel.cpp.
void QSortFilterProxyModel::setSortLocaleAware | ( | bool | on | ) |
Definition at line 2763 of file qsortfilterproxymodel.cpp.
void QSortFilterProxyModel::setSortRole | ( | int | role | ) |
Definition at line 2925 of file qsortfilterproxymodel.cpp.
|
overridevirtual |
\reimp
Reimplemented from QAbstractProxyModel.
Definition at line 2036 of file qsortfilterproxymodel.cpp.
|
overridevirtual |
\reimp
Reimplemented from QAbstractProxyModel.
Definition at line 2151 of file qsortfilterproxymodel.cpp.
|
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 2509 of file qsortfilterproxymodel.cpp.
Qt::CaseSensitivity QSortFilterProxyModel::sortCaseSensitivity | ( | ) | const |
Definition at line 2717 of file qsortfilterproxymodel.cpp.
|
signal |
This signal is emitted when the case sensitivity for sorting changes to sortCaseSensitivity.
int QSortFilterProxyModel::sortColumn | ( | ) | const |
This returns the most recently used sort column. The default value is -1, which means that this proxy model does not sort.
Definition at line 2529 of file qsortfilterproxymodel.cpp.
|
signal |
This signal is emitted when the locale aware setting changes to sortLocaleAware.
Qt::SortOrder QSortFilterProxyModel::sortOrder | ( | ) | const |
This returns the most recently used sort order. The default value is Qt::AscendingOrder.
Definition at line 2544 of file qsortfilterproxymodel.cpp.
int QSortFilterProxyModel::sortRole | ( | ) | const |
Definition at line 2919 of file qsortfilterproxymodel.cpp.
|
signal |
This signal is emitted when the sort role changes to sortRole.
|
overridevirtual |
\reimp
Reimplemented from QAbstractProxyModel.
Definition at line 2492 of file qsortfilterproxymodel.cpp.
|
overridevirtual |
\reimp
Reimplemented from QAbstractProxyModel.
Definition at line 2303 of file qsortfilterproxymodel.cpp.
|
friend |
Definition at line 23 of file qsortfilterproxymodel.h.
|
friend |
Definition at line 22 of file qsortfilterproxymodel.h.
|
readwrite |
if true the proxy model will not filter out children of accepted rows, even if they themselves would be filtered out otherwise.
The default value is false.
Definition at line 47 of file qsortfilterproxymodel.h.
|
readwrite |
whether the proxy model is dynamically sorted and filtered whenever the contents of the source model change
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.
Definition at line 30 of file qsortfilterproxymodel.h.
|
readwrite |
the case sensitivity of the QRegularExpression pattern used to filter the contents of the source model.
By default, the filter is case sensitive.
Definition at line 32 of file qsortfilterproxymodel.h.
|
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.
|
readwrite |
the QRegularExpression used to filter the contents of the source model
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.
Definition at line 26 of file qsortfilterproxymodel.h.
|
readwrite |
the item role that is used to query the source model's data when filtering items.
The default value is Qt::DisplayRole.
Definition at line 42 of file qsortfilterproxymodel.h.
|
readwrite |
the local aware setting used for comparing strings when sorting
By default, sorting is not local aware.
Definition at line 38 of file qsortfilterproxymodel.h.
|
readwrite |
whether the filter to be applied recursively on children, and for any matching child, its parents will be visible as well.
The default value is false.
Definition at line 44 of file qsortfilterproxymodel.h.
|
readwrite |
the case sensitivity setting used for comparing strings when sorting
By default, sorting is case sensitive.
Definition at line 35 of file qsortfilterproxymodel.h.
|
readwrite |
the item role that is used to query the source model's data when sorting items.
The default value is Qt::DisplayRole.
Definition at line 40 of file qsortfilterproxymodel.h.