![]() |
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 } |
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 ®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 () |
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< 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. | |
Public Member Functions inherited from QAbstractProxyModel | |
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 | |
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 |
QObject * | parent () 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< 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 | isQmlObjectType () const |
Returns whether the object has been created by the QML engine or ownership has been explicitly set via QJSEngine::setObjectOwnership(). | |
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) |
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 | |
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. | |
Properties inherited from QAbstractProxyModel | |
QAbstractItemModel * | sourceModel |
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 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) |
Protected Slots inherited from QAbstractItemModel | |
virtual void | resetInternalData () |
Protected Attributes inherited from QObject | |
QScopedPointer< QObjectData > | d_ptr |
Related Symbols inherited from QObject | |
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 21 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 105 of file qsortfilterproxymodel.h.
|
explicit |
Constructs a sorting filter model with the given parent.
Definition at line 2018 of file qsortfilterproxymodel.cpp.
QSortFilterProxyModel::~QSortFilterProxyModel | ( | ) |
Destroys this sorting filter model.
Definition at line 2029 of file qsortfilterproxymodel.cpp.
bool QSortFilterProxyModel::autoAcceptChildRows | ( | ) | const |
Definition at line 3054 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 3111 of file qsortfilterproxymodel.cpp.
QBindable< bool > QSortFilterProxyModel::bindableAutoAcceptChildRows | ( | ) |
Definition at line 3073 of file qsortfilterproxymodel.cpp.
QBindable< bool > QSortFilterProxyModel::bindableDynamicSortFilter | ( | ) |
Definition at line 2907 of file qsortfilterproxymodel.cpp.
QBindable< Qt::CaseSensitivity > QSortFilterProxyModel::bindableFilterCaseSensitivity | ( | ) |
Definition at line 2705 of file qsortfilterproxymodel.cpp.
QBindable< int > QSortFilterProxyModel::bindableFilterKeyColumn | ( | ) |
Definition at line 2648 of file qsortfilterproxymodel.cpp.
QBindable< QRegularExpression > QSortFilterProxyModel::bindableFilterRegularExpression | ( | ) |
Definition at line 2586 of file qsortfilterproxymodel.cpp.
QBindable< int > QSortFilterProxyModel::bindableFilterRole | ( | ) |
Definition at line 2986 of file qsortfilterproxymodel.cpp.
QBindable< bool > QSortFilterProxyModel::bindableIsSortLocaleAware | ( | ) |
Definition at line 2785 of file qsortfilterproxymodel.cpp.
QBindable< bool > QSortFilterProxyModel::bindableRecursiveFilteringEnabled | ( | ) |
Definition at line 3028 of file qsortfilterproxymodel.cpp.
QBindable< Qt::CaseSensitivity > QSortFilterProxyModel::bindableSortCaseSensitivity | ( | ) |
Definition at line 2745 of file qsortfilterproxymodel.cpp.
QBindable< int > QSortFilterProxyModel::bindableSortRole | ( | ) |
Definition at line 2946 of file qsortfilterproxymodel.cpp.
|
overridevirtual |
\reimp
Reimplemented from QAbstractProxyModel.
Definition at line 2477 of file qsortfilterproxymodel.cpp.
|
overridevirtual |
\reimp
Reimplemented from QAbstractProxyModel.
Definition at line 2461 of file qsortfilterproxymodel.cpp.
|
overridevirtual |
|
overridevirtual |
\reimp
Reimplemented from QAbstractProxyModel.
Definition at line 2222 of file qsortfilterproxymodel.cpp.
|
overridevirtual |
\reimp
Reimplemented from QAbstractProxyModel.
Definition at line 2323 of file qsortfilterproxymodel.cpp.
bool QSortFilterProxyModel::dynamicSortFilter | ( | ) | const |
Definition at line 2884 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 3217 of file qsortfilterproxymodel.cpp.
|
overridevirtual |
\reimp
Reimplemented from QAbstractProxyModel.
Definition at line 2453 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 3316 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 3282 of file qsortfilterproxymodel.cpp.
Qt::CaseSensitivity QSortFilterProxyModel::filterCaseSensitivity | ( | ) | const |
Definition at line 2676 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 2625 of file qsortfilterproxymodel.cpp.
QRegularExpression QSortFilterProxyModel::filterRegularExpression | ( | ) | const |
Definition at line 2580 of file qsortfilterproxymodel.cpp.
int QSortFilterProxyModel::filterRole | ( | ) | const |
Definition at line 2968 of file qsortfilterproxymodel.cpp.
|
signal |
This signal is emitted when the filter role changes to filterRole.
|
overridevirtual |
\reimp
Reimplemented from QAbstractProxyModel.
Definition at line 2469 of file qsortfilterproxymodel.cpp.
|
overridevirtual |
\reimp
Reimplemented from QAbstractProxyModel.
Definition at line 2203 of file qsortfilterproxymodel.cpp.
|
overridevirtual |
\reimp
Reimplemented from QAbstractProxyModel.
Reimplemented in ServicesProxyModel, SortedGroupsModel, SortedGroupsModel, SortedMessagesModel, and SortedMessagesModel.
Definition at line 2246 of file qsortfilterproxymodel.cpp.
|
overridevirtual |
|
override |
\reimp
Definition at line 2352 of file qsortfilterproxymodel.cpp.
|
override |
\reimp
Definition at line 2332 of file qsortfilterproxymodel.cpp.
|
slot |
Invalidates the current sorting and filtering.
Definition at line 3086 of file qsortfilterproxymodel.cpp.
bool QSortFilterProxyModel::isRecursiveFilteringEnabled | ( | ) | const |
Definition at line 3010 of file qsortfilterproxymodel.cpp.
bool QSortFilterProxyModel::isSortLocaleAware | ( | ) | const |
Definition at line 2767 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 3260 of file qsortfilterproxymodel.cpp.
|
overridevirtual |
Returns the model index in the QSortFilterProxyModel given the sourceIndex from the source model.
Implements QAbstractProxyModel.
Definition at line 3341 of file qsortfilterproxymodel.cpp.
|
overridevirtual |
\reimp
Reimplemented from QAbstractProxyModel.
Definition at line 3358 of file qsortfilterproxymodel.cpp.
|
overridevirtual |
\reimp
Reimplemented from QAbstractProxyModel.
Definition at line 3350 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 3329 of file qsortfilterproxymodel.cpp.
|
overridevirtual |
\reimp
Reimplemented from QAbstractItemModel.
Definition at line 2492 of file qsortfilterproxymodel.cpp.
|
overridevirtual |
\reimp
Reimplemented from QAbstractProxyModel.
Definition at line 2291 of file qsortfilterproxymodel.cpp.
|
overridevirtual |
\reimp
Reimplemented from QAbstractProxyModel.
Definition at line 2304 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 2414 of file qsortfilterproxymodel.cpp.
|
override |
\reimp
Definition at line 2372 of file qsortfilterproxymodel.cpp.
|
overridevirtual |
void QSortFilterProxyModel::setAutoAcceptChildRows | ( | bool | accept | ) |
Definition at line 3060 of file qsortfilterproxymodel.cpp.
|
overridevirtual |
\reimp
Reimplemented from QAbstractProxyModel.
Definition at line 2234 of file qsortfilterproxymodel.cpp.
void QSortFilterProxyModel::setDynamicSortFilter | ( | bool | enable | ) |
Definition at line 2890 of file qsortfilterproxymodel.cpp.
void QSortFilterProxyModel::setFilterCaseSensitivity | ( | Qt::CaseSensitivity | cs | ) |
Definition at line 2682 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 2856 of file qsortfilterproxymodel.cpp.
void QSortFilterProxyModel::setFilterKeyColumn | ( | int | column | ) |
Definition at line 2631 of file qsortfilterproxymodel.cpp.
|
slot |
Definition at line 2592 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 2809 of file qsortfilterproxymodel.cpp.
void QSortFilterProxyModel::setFilterRole | ( | int | role | ) |
Definition at line 2974 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 2832 of file qsortfilterproxymodel.cpp.
|
overridevirtual |
\reimp
Reimplemented from QAbstractProxyModel.
Definition at line 2268 of file qsortfilterproxymodel.cpp.
void QSortFilterProxyModel::setRecursiveFilteringEnabled | ( | bool | recursive | ) |
Definition at line 3016 of file qsortfilterproxymodel.cpp.
void QSortFilterProxyModel::setSortCaseSensitivity | ( | Qt::CaseSensitivity | cs | ) |
Definition at line 2733 of file qsortfilterproxymodel.cpp.
void QSortFilterProxyModel::setSortLocaleAware | ( | bool | on | ) |
Definition at line 2773 of file qsortfilterproxymodel.cpp.
void QSortFilterProxyModel::setSortRole | ( | int | role | ) |
Definition at line 2935 of file qsortfilterproxymodel.cpp.
|
overridevirtual |
\reimp
Reimplemented from QAbstractProxyModel.
Definition at line 2039 of file qsortfilterproxymodel.cpp.
|
overridevirtual |
\reimp
Reimplemented from QAbstractProxyModel.
Definition at line 2161 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 2519 of file qsortfilterproxymodel.cpp.
Qt::CaseSensitivity QSortFilterProxyModel::sortCaseSensitivity | ( | ) | const |
Definition at line 2727 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 2539 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 2554 of file qsortfilterproxymodel.cpp.
int QSortFilterProxyModel::sortRole | ( | ) | const |
Definition at line 2929 of file qsortfilterproxymodel.cpp.
|
signal |
This signal is emitted when the sort role changes to sortRole.
|
overridevirtual |
\reimp
Reimplemented from QAbstractProxyModel.
Definition at line 2502 of file qsortfilterproxymodel.cpp.
|
overridevirtual |
\reimp
Reimplemented from QAbstractProxyModel.
Definition at line 2313 of file qsortfilterproxymodel.cpp.
|
friend |
Definition at line 24 of file qsortfilterproxymodel.h.
|
friend |
Definition at line 23 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 48 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 31 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 33 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 29 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 27 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 43 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 39 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 45 of file qsortfilterproxymodel.h.
|
readwrite |
the case sensitivity setting used for comparing strings when sorting
By default, sorting is case sensitive.
Definition at line 36 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 41 of file qsortfilterproxymodel.h.