QSortFilterProxyModel Class
Die Klasse „QSortFilterProxyModel“ bietet Unterstützung für das Sortieren und Filtern von Daten, die zwischen einem anderen Modell und einer Ansicht ausgetauscht werden. Mehr...
| Header: | #include <QSortFilterProxyModel> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Core) target_link_libraries(mytarget PRIVATE Qt6::Core) |
| qmake: | QT += core |
| Erbt von: | QAbstractProxyModel |
Öffentliche Typen
(since 6.12) enum class | DataChangeRelevanceFlag { NotRelevant, RelevantForFiltering, RelevantForSorting, RelevantForFilteringAndSorting } |
| flags | DataChangeRelevanceFlags |
(since 6.10) enum class | Direction { Rows, Columns, Both } |
| flags | Directions |
Eigenschaften
|
|
Öffentliche Funktionen
| QSortFilterProxyModel(QObject *parent = nullptr) | |
| virtual | ~QSortFilterProxyModel() |
| bool | autoAcceptChildRows() const |
| QBindable<bool> | bindableAutoAcceptChildRows() |
| QBindable<bool> | bindableDynamicSortFilter() |
| QBindable<Qt::CaseSensitivity> | bindableFilterCaseSensitivity() |
| QBindable<int> | bindableFilterKeyColumn() |
| QBindable<QRegularExpression> | bindableFilterRegularExpression() |
| QBindable<int> | bindableFilterRole() |
| QBindable<bool> | bindableIsSortLocaleAware() |
| QBindable<bool> | bindableRecursiveFilteringEnabled() |
| QBindable<Qt::CaseSensitivity> | bindableSortCaseSensitivity() |
| QBindable<int> | bindableSortRole() |
| bool | dynamicSortFilter() const |
| Qt::CaseSensitivity | filterCaseSensitivity() const |
| int | filterKeyColumn() const |
| QRegularExpression | filterRegularExpression() const |
| int | filterRole() const |
| bool | isRecursiveFilteringEnabled() const |
| bool | isSortLocaleAware() const |
| void | setAutoAcceptChildRows(bool accept) |
| void | setDynamicSortFilter(bool enable) |
| void | setFilterCaseSensitivity(Qt::CaseSensitivity cs) |
| void | setFilterKeyColumn(int column) |
| void | setFilterRole(int role) |
| void | setRecursiveFilteringEnabled(bool recursive) |
| void | setSortCaseSensitivity(Qt::CaseSensitivity cs) |
| void | setSortLocaleAware(bool on) |
| void | setSortRole(int role) |
| Qt::CaseSensitivity | sortCaseSensitivity() const |
| int | sortColumn() const |
| Qt::SortOrder | sortOrder() const |
| int | sortRole() const |
Neu implementierte öffentliche Funktionen
| virtual QModelIndex | buddy(const QModelIndex &index) const override |
| virtual bool | canFetchMore(const QModelIndex &parent) const override |
| virtual int | columnCount(const QModelIndex &parent = QModelIndex()) const override |
| virtual QVariant | data(const QModelIndex &index, int role = Qt::DisplayRole) const override |
| virtual bool | dropMimeData(const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent) override |
| virtual void | fetchMore(const QModelIndex &parent) override |
| virtual Qt::ItemFlags | flags(const QModelIndex &index) const override |
| virtual bool | hasChildren(const QModelIndex &parent = QModelIndex()) const override |
| virtual QVariant | headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const override |
| virtual QModelIndex | index(int row, int column, const QModelIndex &parent = QModelIndex()) const override |
| virtual bool | insertColumns(int column, int count, const QModelIndex &parent = QModelIndex()) override |
| virtual bool | insertRows(int row, int count, const QModelIndex &parent = QModelIndex()) override |
| virtual QModelIndex | mapFromSource(const QModelIndex &sourceIndex) const override |
| virtual QItemSelection | mapSelectionFromSource(const QItemSelection &sourceSelection) const override |
| virtual QItemSelection | mapSelectionToSource(const QItemSelection &proxySelection) const override |
| virtual QModelIndex | mapToSource(const QModelIndex &proxyIndex) const override |
| virtual QModelIndexList | match(const QModelIndex &start, int role, const QVariant &value, int hits = 1, Qt::MatchFlags flags = Qt::MatchFlags(Qt::MatchStartsWith|Qt::MatchWrap)) const override |
| virtual QMimeData * | mimeData(const QModelIndexList &indexes) const override |
| virtual QStringList | mimeTypes() const override |
| virtual QModelIndex | parent(const QModelIndex &child) const override |
| virtual bool | removeColumns(int column, int count, const QModelIndex &parent = QModelIndex()) override |
| virtual bool | removeRows(int row, int count, const QModelIndex &parent = QModelIndex()) override |
| virtual int | rowCount(const QModelIndex &parent = QModelIndex()) const override |
| virtual bool | setData(const QModelIndex &index, const QVariant &value, int role = Qt::EditRole) override |
| virtual bool | setHeaderData(int section, Qt::Orientation orientation, const QVariant &value, int role = Qt::EditRole) override |
| virtual void | setSourceModel(QAbstractItemModel *sourceModel) override |
| virtual QModelIndex | sibling(int row, int column, const QModelIndex &idx) const override |
| virtual void | sort(int column, Qt::SortOrder order = Qt::AscendingOrder) override |
| virtual QSize | span(const QModelIndex &index) const override |
| virtual Qt::DropActions | supportedDropActions() const override |
Öffentliche Slots
| void | invalidate() |
| void | setFilterFixedString(const QString &pattern) |
| void | setFilterRegularExpression(const QString &pattern) |
| void | setFilterRegularExpression(const QRegularExpression ®ularExpression) |
| void | setFilterWildcard(const QString &pattern) |
Signale
(since 6.0) void | autoAcceptChildRowsChanged(bool autoAcceptChildRows) |
| void | filterCaseSensitivityChanged(Qt::CaseSensitivity filterCaseSensitivity) |
| void | filterRoleChanged(int filterRole) |
| void | recursiveFilteringEnabledChanged(bool recursiveFilteringEnabled) |
| void | sortCaseSensitivityChanged(Qt::CaseSensitivity sortCaseSensitivity) |
| void | sortLocaleAwareChanged(bool sortLocaleAware) |
| void | sortRoleChanged(int sortRole) |
Geschützte Funktionen
(since 6.9) void | beginFilterChange() |
(since 6.12) QSortFilterProxyModel::DataChangeRelevanceFlags | dataChangeRelevanceFlags(const QModelIndex &sourceTopLeft, const QModelIndex &sourceBottomRight, const QList<int> &roles) const |
(since 6.10) void | endFilterChange(QSortFilterProxyModel::Directions directions = Direction::Both) |
| virtual bool | filterAcceptsColumn(int source_column, const QModelIndex &source_parent) const |
| virtual bool | filterAcceptsRow(int source_row, const QModelIndex &source_parent) const |
(since 6.0, until 6.13) void | invalidateColumnsFilter() |
(until 6.13) void | invalidateFilter() |
(since 6.0, until 6.13) void | invalidateRowsFilter() |
| virtual bool | lessThan(const QModelIndex &source_left, const QModelIndex &source_right) const |
Ausführliche Beschreibung
QSortFilterProxyModel kann zum Sortieren von Elementen, zum Herausfiltern von Elementen oder für beides verwendet werden. Das Modell transformiert die Struktur eines Quellmodells, indem es die von ihm bereitgestellten Modellindizes neuen Indizes zuordnet, die verschiedenen Positionen entsprechen und von den Ansichten verwendet werden können. Dieser Ansatz ermöglicht es, ein gegebenes Quellmodell aus Sicht der Ansichten neu zu strukturieren, ohne dass Transformationen an den zugrunde liegenden Daten erforderlich sind und ohne dass die Daten im Speicher dupliziert werden.
Nehmen wir an, wir möchten die von einem benutzerdefinierten Modell bereitgestellten Elemente sortieren und filtern. Der Code zum Einrichten des Modells und der Ansicht ohne Sortierung und Filterung würde wie folgt aussehen:
QTreeView *treeView = new QTreeView;
MyItemModel *model = new MyItemModel(this);
treeView->setModel(model);Um „ MyItemModel “ um Sortier- und Filterfunktionen zu erweitern, müssen wir ein „QSortFilterProxyModel“ erstellen, „ setSourceModel()“ mit dem „ MyItemModel “ als Argument aufrufen und das „QSortFilterProxyModel“ in der Ansicht einbinden:
QTreeView *treeView = new QTreeView;
MyItemModel *sourceModel = new MyItemModel(this);
QSortFilterProxyModel *proxyModel = new QSortFilterProxyModel(this);
proxyModel->setSourceModel(sourceModel);
treeView->setModel(proxyModel);Zu diesem Zeitpunkt sind weder Sortierung noch Filterung aktiviert; in der Ansicht werden die Originaldaten angezeigt. Alle über das `QSortFilterProxyModel` vorgenommenen Änderungen werden auf das Originalmodell angewendet.
Das `QSortFilterProxyModel` fungiert als Wrapper für das ursprüngliche Modell. Wenn Sie Quell QModelIndexen in sortierte/gefilterte Modellindizes umwandeln müssen oder umgekehrt, verwenden Sie ` mapToSource()`, ` mapFromSource()`, ` mapSelectionToSource()` und ` mapSelectionFromSource()`.
Hinweis: Standardmäßig sortiert und filtert das Modell die Daten dynamisch neu, sobald sich das ursprüngliche Modell ändert. Dieses Verhalten kann durch Setzen der Eigenschaft „ dynamicSortFilter “ geändert werden.
Die Beispiele „Basic Sort/Filter Model“ und „Custom Sort/Filter Model“ veranschaulichen, wie man mit QSortFilterProxyModel grundlegende Sortier- und Filtervorgänge durchführt und wie man eine Unterklasse davon erstellt, um benutzerdefiniertes Verhalten zu implementieren.
Sortieren
QTableView und „ QTreeView “ verfügen über die Eigenschaft „ sortingEnabled “, die steuert, ob der Benutzer die Ansicht durch Klicken auf die horizontale Kopfzeile der Ansicht sortieren kann. Beispiel:
treeView->setSortingEnabled(true);Wenn diese Funktion aktiviert ist (standardmäßig ist sie deaktiviert), werden die Elemente durch Klicken auf eine Kopfzeile nach dieser Spalte sortiert. Durch wiederholtes Klicken kann der Benutzer zwischen aufsteigender und absteigender Reihenfolge wechseln.

Im Hintergrund ruft die Ansicht die virtuelle Funktion ` sort()` des Modells auf, um die Daten im Modell neu zu ordnen. Um Ihre Daten sortierbar zu machen, können Sie entweder ` sort()` in Ihrem Modell implementieren oder ein `QSortFilterProxyModel` verwenden, um Ihr Modell zu umschließen – `QSortFilterProxyModel` stellt eine generische Neuimplementierung von ` sort()` bereit, die auf den ` sortRole()` (standardmäßig `Qt::DisplayRole `) der Elemente wirkt und mehrere Datentypen versteht, darunter ` int`, ` QString`, sowie QDateTime. Bei hierarchischen Modellen wird die Sortierung rekursiv auf alle untergeordneten Elemente angewendet. Bei Zeichenfolgenvergleichen wird standardmäßig die Groß-/Kleinschreibung berücksichtigt; dies kann durch Setzen der Eigenschaft „ sortCaseSensitivity “ geändert werden.
Ein benutzerdefiniertes Sortierverhalten lässt sich durch die Erstellung einer Unterklasse von `QSortFilterProxyModel` und die Neuimplementierung von ` lessThan()` erreichen, das zum Vergleichen von Elementen verwendet wird. Zum Beispiel:
bool MySortFilterProxyModel::lessThan(const QModelIndex &left,
const QModelIndex &right) const
{
QVariant leftData = sourceModel()->data(left);
QVariant rightData = sourceModel()->data(right);
if (leftData.userType() == QMetaType::QDateTime)
return leftData.toDateTime() < rightData.toDateTime();
static const QRegularExpression emailPattern(u"[\\w\\.]*@[\\w\\.]*"_s);
QString leftString = leftData.toString();
if (left.column() == 1) {
const QRegularExpressionMatch match = emailPattern.match(leftString);
if (match.hasMatch())
leftString = match.captured(0);
}
QString rightString = rightData.toString();
if (right.column() == 1) {
const QRegularExpressionMatch match = emailPattern.match(rightString);
if (match.hasMatch())
rightString = match.captured(0);
}
return QString::localeAwareCompare(leftString, rightString) < 0;
}(Dieser Codeausschnitt stammt aus dem Beispiel „Custom Sort/Filter Model “.)
Ein alternativer Ansatz zum Sortieren besteht darin, die Sortierung in der Ansicht zu deaktivieren und dem Benutzer eine bestimmte Reihenfolge vorzuschreiben. Dies geschieht durch den expliziten Aufruf von ` sort()` mit der gewünschten Spalte und Reihenfolge als Argumente am `QSortFilterProxyModel` (oder am ursprünglichen Modell, falls dieses ` sort()` implementiert). Zum Beispiel:
proxyModel->sort(2, Qt::AscendingOrder);Das `QSortFilterProxyModel` kann nach Spalte -1 sortiert werden; in diesem Fall wird die Sortierreihenfolge des zugrunde liegenden Quellmodells beibehalten.
Hinweis: ` sortColumn()` gibt die zuletzt verwendete Sortierspalte zurück. Der Standardwert ist -1, was bedeutet, dass dieses Proxy-Modell nicht sortiert. Beachten Sie außerdem, dass ` sort()` die Funktion ` sortColumn()` auf die zuletzt verwendete Sortierspalte setzt.
Filtern
Zusätzlich zur Sortierung kann das `QSortFilterProxyModel` verwendet werden, um Elemente auszublenden, die einem bestimmten Filter nicht entsprechen. Der Filter wird mithilfe eines ` QRegularExpression `-Objekts festgelegt und für eine bestimmte Spalte auf die ` filterRole()` (standardmäßig `Qt::DisplayRole `) jedes Elements angewendet. Das Objekt ` QRegularExpression ` kann verwendet werden, um einen regulären Ausdruck, ein Platzhaltermuster oder eine feste Zeichenfolge abzugleichen. Beispiel:
proxyModel->setFilterRegularExpression(QRegularExpression("\\.png", QRegularExpression::CaseInsensitiveOption));
proxyModel->setFilterKeyColumn(1);Bei hierarchischen Modellen wird der Filter rekursiv auf alle untergeordneten Elemente angewendet. Wenn ein übergeordnetes Element nicht dem Filter entspricht, werden keine seiner untergeordneten Elemente angezeigt.
Ein häufiger Anwendungsfall besteht darin, den Benutzer den Filter – sei es ein regulärer Ausdruck, ein Platzhaltermuster oder eine feste Zeichenfolge – in einem „ QLineEdit “ festlegen zu lassen. Verbinden Sie dazu das Signal „ QLineEdit::textChanged()“ oder „ textEdited()“ entweder mit „ setFilterRegularExpression()“, „ setFilterWildcard()“ oder „ setFilterFixedString()“.
Ein benutzerdefiniertes Filterverhalten lässt sich durch Neuanwendung der Funktionen „ filterAcceptsRow “ () und „ filterAcceptsColumn “ () erreichen. Beispielsweise (aus dem Beispiel „Custom Sort/Filter Model“ ) ignoriert die folgende Implementierung die Eigenschaft „ filterKeyColumn “ und führt eine Filterung für die Spalten 0, 1 und 2 durch:
bool MySortFilterProxyModel::filterAcceptsRow(int sourceRow,
const QModelIndex &sourceParent) const
{
QModelIndex index0 = sourceModel()->index(sourceRow, 0, sourceParent);
QModelIndex index1 = sourceModel()->index(sourceRow, 1, sourceParent);
QModelIndex index2 = sourceModel()->index(sourceRow, 2, sourceParent);
return (sourceModel()->data(index0).toString().contains(filterRegularExpression())
|| sourceModel()->data(index1).toString().contains(filterRegularExpression()))
&& dateInRange(sourceModel()->data(index2).toDate());
}(Dieser Codeausschnitt stammt aus dem Beispiel „Benutzerdefiniertes Sortier-/Filtermodell “.)
Wenn Sie mit umfangreichen Filtervorgängen arbeiten und die Methoden ` beginFilterChange()` bzw. ` endFilterChange()` wiederholt aufrufen müssen, kann die Verwendung von ` beginResetModel()` bzw. ` endResetModel()` je nach Implementierung Ihres Modells effizienter sein. Allerdings versetzen ` beginResetModel()` bzw. ` endResetModel()` das Proxy-Modell in seinen ursprünglichen Zustand zurück, wodurch Auswahlinformationen verloren gehen und das Proxy-Modell neu gefüllt wird.
Unterklassen
Da ` QAbstractProxyModel ` und seine Unterklassen von ` QAbstractItemModel` abgeleitet sind, gelten viele der gleichen Empfehlungen zur Unterklassenbildung bei normalen Modellen auch für Proxy-Modelle. Darüber hinaus ist zu beachten, dass viele der Standardimplementierungen von Funktionen in dieser Klasse so geschrieben sind, dass sie die entsprechenden Funktionen im jeweiligen Quellmodell aufrufen. Dieser einfache Proxy-Mechanismus muss möglicherweise für Quellmodelle mit komplexerem Verhalten überschrieben werden; wenn das Quellmodell beispielsweise eine benutzerdefinierte Implementierung von ` hasChildren()` bereitstellt, sollten Sie auch im Proxy-Modell eine solche bereitstellen.
Hinweis: Einige allgemeine Richtlinien zur Erstellung von Unterklassen von Modellen finden Sie in der Referenz zur Erstellung von Modellunterklassen.
Siehe auch „ QAbstractProxyModel“ , „ QAbstractItemModel “, „Model/View-Programmierung“, „Beispiel für ein einfaches Sortier-/Filtermodell“, „Beispiel für ein benutzerdefiniertes Sortier-/Filtermodell“ und „ QIdentityProxyModel “.
Dokumentation zu Mitgliedstypen
[since 6.12] enum class QSortFilterProxyModel::DataChangeRelevanceFlag
flags QSortFilterProxyModel::DataChangeRelevanceFlags
Diese Enumeration dient dazu, die Operation anzugeben, für die eine Quelländerung relevant ist.
| Konstante | Wert | Beschreibung |
|---|---|---|
QSortFilterProxyModel::DataChangeRelevanceFlag::NotRelevant | 0x00 | Die Änderung ist weder für die Filterung noch für die Sortierung relevant |
QSortFilterProxyModel::DataChangeRelevanceFlag::RelevantForFiltering | 0x01 | Die Änderung ist für die Filterung relevant |
QSortFilterProxyModel::DataChangeRelevanceFlag::RelevantForSorting | 0x02 | Die Änderung ist für die Sortierung relevant |
QSortFilterProxyModel::DataChangeRelevanceFlag::RelevantForFilteringAndSorting | RelevantForFiltering | RelevantForSorting | Die Änderung ist sowohl für die Filterung als auch für die Sortierung relevant |
Diese Enumeration wurde in Qt 6.12 eingeführt.
Der Typ `DataChangeRelevanceFlags` ist ein `typedef` für ` QFlags<DataChangeRelevanceFlag>`. Er speichert eine ODER-Kombination von `DataChangeRelevanceFlag`-Werten.
Siehe auch ` dataChangeRelevanceFlags()`.
[since 6.10] enum class QSortFilterProxyModel::Direction
flags QSortFilterProxyModel::Directions
Diese Enumeration dient dazu, die Richtung anzugeben, in die ein benutzerdefinierter Filter wirkt, wenn die Filterparameter geändert werden.
| Konstante | Wert | Beschreibung |
|---|---|---|
QSortFilterProxyModel::Direction::Rows | 0x01 | Der Filter gilt für rows |
QSortFilterProxyModel::Direction::Columns | 0x02 | Der Filter gilt für columns |
QSortFilterProxyModel::Direction::Both | Rows | Columns | Der Filter gilt sowohl für Zeilen als auch für Spalten |
Diese Enumeration wurde in Qt 6.10 eingeführt.
Der Typ „Directions“ ist ein typedef für QFlags<Direction>. Er speichert eine ODER-Kombination von „Direction“-Werten.
Siehe auch beginFilterChange() und endFilterChange().
Dokumentation zur Eigenschaft
[bindable, since 6.0] autoAcceptChildRows : bool
Hinweis: Diese Eigenschaft unterstützt „ QProperty “-Bindungen.
Ist der Wert „true“, filtert das Proxy-Modell die untergeordneten Elemente akzeptierter Zeilen nicht heraus, selbst wenn diese andernfalls herausgefiltert würden.
Der Standardwert ist „false“.
Diese Aufzählung wurde in Qt 6.0 eingeführt.
Zugriffsfunktionen:
| bool | autoAcceptChildRows() const |
| void | setAutoAcceptChildRows(bool accept) |
Notifier-Signal:
| void | autoAcceptChildRowsChanged(bool autoAcceptChildRows) |
Siehe auch „ recursiveFilteringEnabled “ und „ filterAcceptsRow()“.
[bindable] dynamicSortFilter : bool
Hinweis: Diese Eigenschaft unterstützt „ QProperty “-Bindungen.
Diese Eigenschaft gibt an, ob das Proxy-Modell dynamisch sortiert und gefiltert wird, sobald sich der Inhalt des Quellmodells ändert
Beachten Sie, dass Sie das Quellmodell nicht über das Proxy-Modell aktualisieren sollten, wenn „dynamicSortFilter“ auf „true“ gesetzt ist. Wenn Sie beispielsweise das Proxy-Modell für ein „ QComboBox “ festlegen, funktionieren Funktionen zur Aktualisierung des Modells, z. B. „ addItem()“, nicht wie erwartet. Eine Alternative besteht darin, „dynamicSortFilter“ auf „false“ zu setzen und „ sort()“ aufzurufen, nachdem Elemente zum „ QComboBox “ hinzugefügt wurden.
Der Standardwert ist „true“.
Zugriffsfunktionen:
| bool | dynamicSortFilter() const |
| void | setDynamicSortFilter(bool enable) |
Siehe auch „ sortColumn()“.
[bindable] filterCaseSensitivity : Qt::CaseSensitivity
Hinweis: Diese Eigenschaft unterstützt „ QProperty “-Bindungen.
Diese Eigenschaft legt fest, ob bei dem „ QRegularExpression “-Muster, das zum Filtern des Inhalts des Quellmodells verwendet wird, die Groß-/Kleinschreibung beachtet wird.
Standardmäßig unterscheidet der Filter zwischen Groß- und Kleinschreibung.
Hinweis: Durch das Setzen dieser Eigenschaft wird die neue Groß-/Kleinschreibung auf die Eigenschaft „ filterRegularExpression “ übertragen, wodurch deren Bindung aufgehoben wird. Ebenso führt das explizite Setzen von „ filterRegularExpression “ zu einer Änderung der aktuellen Groß-/Kleinschreibung, wodurch deren Bindung aufgehoben wird.
Zugriffsfunktionen:
| Qt::CaseSensitivity | filterCaseSensitivity() const |
| void | setFilterCaseSensitivity(Qt::CaseSensitivity cs) |
Benachrichtigungssignal:
| void | filterCaseSensitivityChanged(Qt::CaseSensitivity filterCaseSensitivity) |
Siehe auch „ filterRegularExpression “ und „ sortCaseSensitivity “.
[bindable] filterKeyColumn : int
Hinweis: Diese Eigenschaft unterstützt „ QProperty “-Bindungen.
Diese Eigenschaft gibt die Spalte an, aus der der Schlüssel gelesen wird, der zum Filtern des Inhalts des Quellmodells verwendet wird.
Der Standardwert ist 0. Wenn der Wert -1 ist, werden die Schlüssel aus allen Spalten gelesen.
Zugriffsfunktionen:
| int | filterKeyColumn() const |
| void | setFilterKeyColumn(int column) |
[bindable] filterRegularExpression : QRegularExpression
Hinweis: Diese Eigenschaft unterstützt „ QProperty “-Bindungen.
Diese Eigenschaft enthält die „ QRegularExpression “, die zum Filtern des Inhalts des Quellmodells verwendet wird
Das Festlegen dieser Eigenschaft über die Überladung von „ QRegularExpression “ überschreibt den aktuellen „ filterCaseSensitivity “. Standardmäßig ist der „ QRegularExpression “ eine leere Zeichenfolge, die mit allen Inhalten übereinstimmt.
Wenn kein „ QRegularExpression “ oder eine leere Zeichenkette festgelegt ist, wird der gesamte Inhalt des Quellmodells akzeptiert.
Der reguläre Ausdruck wird mit jeder Zeile im Quellmodell abgeglichen, sodass ein komplexes oder fehlerhaftes Muster die gesamte Anwendung verlangsamen oder zum Stillstand bringen kann, insbesondere bei der Verwendung mit großen Modellen. Anwendungsentwicklern wird empfohlen, die Leistung und Skalierbarkeit des regulären Ausdrucks zu messen, bevor sie ihn verwenden. Wenn der reguläre Ausdruck aus einer potenziell nicht vertrauenswürdigen Eingabe stammt, sollten Sie in Erwägung ziehen, ihn zu bereinigen, bevor Sie ihn an diese Methode übergeben, oder stattdessen ` setFilterFixedString()` zu verwenden.
Hinweis: Durch das Setzen dieser Eigenschaft wird die Groß-/Kleinschreibung des neuen regulären Ausdrucks auf die Eigenschaft „ filterCaseSensitivity “ übertragen, wodurch deren Bindung aufgehoben wird. Ebenso führt das explizite Setzen von „ filterCaseSensitivity “ zu einer Änderung der Groß-/Kleinschreibung des aktuellen regulären Ausdrucks, wodurch dessen Bindung aufgehoben wird.
Zugriffsfunktionen:
| QRegularExpression | filterRegularExpression() const |
| void | setFilterRegularExpression(const QString &pattern) |
| void | setFilterRegularExpression(const QRegularExpression ®ularExpression) |
Siehe auch „ filterCaseSensitivity“ , „ setFilterWildcard()“ und „ setFilterFixedString()“.
[bindable] filterRole : int
Hinweis: Diese Eigenschaft unterstützt „ QProperty “-Bindungen.
Diese Eigenschaft enthält die Elementrolle, die zum Abfragen der Daten des Quellmodells beim Filtern von Elementen verwendet wird.
Der Standardwert lautet „ Qt::DisplayRole “.
Zugriffsfunktionen:
| int | filterRole() const |
| void | setFilterRole(int role) |
Benachrichtigungssignal:
| void | filterRoleChanged(int filterRole) |
Siehe auch „ filterAcceptsRow()“.
[bindable] isSortLocaleAware : bool
Hinweis: Diese Eigenschaft unterstützt „ QProperty “-Bindungen.
Diese Eigenschaft enthält die lokale Einstellung, die beim Sortieren zum Vergleichen von Zeichenfolgen verwendet wird
Standardmäßig erfolgt die Sortierung nicht unter Berücksichtigung der lokalen Kontexte.
Zugriffsfunktionen:
| bool | isSortLocaleAware() const |
| void | setSortLocaleAware(bool on) |
Benachrichtigungssignal:
| void | sortLocaleAwareChanged(bool sortLocaleAware) |
Siehe auch „ sortCaseSensitivity “ und „ lessThan()“.
[bindable] recursiveFilteringEnabled : bool
Hinweis: Diese Eigenschaft unterstützt „ QProperty “-Bindungen.
Diese Eigenschaft gibt an, ob der Filter rekursiv auf untergeordnete Elemente angewendet werden soll und ob bei jedem übereinstimmenden untergeordneten Element auch dessen übergeordnete Elemente sichtbar sein sollen.
Der Standardwert ist „false“.
Zugriffsfunktionen:
| bool | isRecursiveFilteringEnabled() const |
| void | setRecursiveFilteringEnabled(bool recursive) |
Notifier-Signal:
| void | recursiveFilteringEnabledChanged(bool recursiveFilteringEnabled) |
Siehe auch „ autoAcceptChildRows “ und „ filterAcceptsRow()“.
[bindable] sortCaseSensitivity : Qt::CaseSensitivity
Hinweis: Diese Eigenschaft unterstützt „ QProperty “-Bindungen.
Diese Eigenschaft enthält die Einstellung zur Groß-/Kleinschreibung, die beim Vergleich von Zeichenfolgen beim Sortieren verwendet wird
Standardmäßig wird bei der Sortierung zwischen Groß- und Kleinschreibung unterschieden.
Zugriffsfunktionen:
| Qt::CaseSensitivity | sortCaseSensitivity() const |
| void | setSortCaseSensitivity(Qt::CaseSensitivity cs) |
Benachrichtigungssignal:
| void | sortCaseSensitivityChanged(Qt::CaseSensitivity sortCaseSensitivity) |
Siehe auch „ filterCaseSensitivity “ und „ lessThan()“.
[bindable] sortRole : int
Hinweis: Diese Eigenschaft unterstützt „ QProperty “-Bindungen.
Diese Eigenschaft enthält die Elementrolle, die beim Sortieren von Elementen zum Abfragen der Daten des Quellmodells verwendet wird.
Der Standardwert ist „ Qt::DisplayRole “.
Zugriffsfunktionen:
| int | sortRole() const |
| void | setSortRole(int role) |
Benachrichtigungssignal:
| void | sortRoleChanged(int sortRole) |
Siehe auch „ lessThan()“.
Dokumentation zu den Mitgliedsfunktionen
[explicit] QSortFilterProxyModel::QSortFilterProxyModel(QObject *parent = nullptr)
Erstellt ein Sortierfiltermodell mit dem angegebenen „ parent “.
[virtual noexcept] QSortFilterProxyModel::~QSortFilterProxyModel()
Löscht dieses Sortierfiltermodell.
[signal, since 6.0] void QSortFilterProxyModel::autoAcceptChildRowsChanged(bool autoAcceptChildRows)
Dieses Signal wird ausgelöst, wenn sich der Wert der Eigenschaft „ autoAcceptChildRows “ ändert.
Hinweis: Notifier -Signal für die Eigenschaft „ autoAcceptChildRows “.
Diese Funktion wurde in Qt 6.0 eingeführt.
Siehe auch „ autoAcceptChildRows “.
[protected, since 6.9] void QSortFilterProxyModel::beginFilterChange()
Bereitet einen Filterwechsel vor.
Diese Funktion sollte aufgerufen werden, wenn Sie eine benutzerdefinierte Filterung implementieren (z. B. filterAcceptsRow()) und sich Ihr Filterparameter ändern wird.
void MySortFilterProxyModel::setFilterMaximumDate(QDate date)
{
beginFilterChange();
maxDate = date;
endFilterChange(QSortFilterProxyModel::Direction::Rows);
}Sobald der Filter geändert wurde, rufen Sie ` endFilterChange()` mit ` Direction::Rows ` für Zeilenfilter, ` Direction::Columns ` für Spaltenfilter oder ` Direction::Columns|Direction::Rows ` auf, wenn sowohl Zeilen als auch Spalten gefiltert werden.
Diese Funktion wurde in Qt 6.9 eingeführt.
Siehe auch „ endFilterChange()“.
[override virtual] QModelIndex QSortFilterProxyModel::buddy(const QModelIndex &index) const
Implementiert neu: ` QAbstractProxyModel::buddy(const QModelIndex &index) const`.
[override virtual] bool QSortFilterProxyModel::canFetchMore(const QModelIndex &parent) const
Implementiert neu: ` QAbstractProxyModel::canFetchMore(const QModelIndex &parent) const`.
[override virtual] int QSortFilterProxyModel::columnCount(const QModelIndex &parent = QModelIndex()) const
Implementiert neu: ` QAbstractItemModel::columnCount(const QModelIndex &parent) const`.
[override virtual] QVariant QSortFilterProxyModel::data(const QModelIndex &index, int role = Qt::DisplayRole) const
Implementiert neu: ` QAbstractProxyModel::data(const QModelIndex &proxyIndex, int role) const`.
Siehe auch ` setData()`.
[protected invokable, since 6.12] QSortFilterProxyModel::DataChangeRelevanceFlags QSortFilterProxyModel::dataChangeRelevanceFlags(const QModelIndex &sourceTopLeft, const QModelIndex &sourceBottomRight, const QList<int> &roles) const
Implementieren Sie diesen Slot in einer Unterklasse neu, um anzugeben, wann eine Änderung am Quellmodell für die Filterung oder Sortierung relevant ist. Dies dient der Leistungsoptimierung, um unnötige Aufrufe von ` filterAcceptsRow()` und ` lessThan()` bei Änderungen am Quellmodell zu vermeiden, die keine Auswirkungen auf die Sortier- und Filterergebnisse haben. Die Parameter ` sourceTopLeft`, ` sourceBottomRight ` und ` roles ` sind diejenigen, die vom Signal ` dataChanged()` des Quellmodells ausgegeben werden und der Änderung entsprechen, deren Relevanz geprüft wird.
Hinweis: Aufgrund von Einschränkungen bei der Binärkompatibilität kann diese Methode bis Qt 7 nicht virtuell sein. In der Zwischenzeit sollten Sie sie in einer Unterklasse als Slot oder als „ Q_INVOKABLE “-Methode neu deklarieren; „ QSortFilterProxyModel “ erkennt und ruft sie dann dynamisch auf.
Hinweis: Die Standardimplementierung geht davon aus, dass jede Änderung für die Filterung relevant ist und dass nur Änderungen in der Quell-Sortierspalte für die Sortierung relevant sind.
Hinweis: Diese Funktion kann über das Metaobjektsystem und aus QML aufgerufen werden. Siehe Q_INVOKABLE.
Diese Funktion wurde in Qt 6.12 eingeführt.
Siehe auch DataChangeRelevanceFlags, filterAcceptsRow() und lessThan().
[override virtual] bool QSortFilterProxyModel::dropMimeData(const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent)
Implementiert: ` QAbstractProxyModel::dropMimeData` (const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent).
[protected, since 6.10] void QSortFilterProxyModel::endFilterChange(QSortFilterProxyModel::Directions directions = Direction::Both)
Macht die aktuelle Filterung ungültig, nachdem sich der Filterparameter geändert hat.
Diese Funktion sollte aufgerufen werden, wenn Sie eine benutzerdefinierte Filterung implementieren (z. B. ` filterAcceptsRow()`) und sich Ihre Filterparameter geändert haben. Der Parameter ` directions ` gibt an, ob sich der benutzerdefinierte Filter auf Zeilen, Spalten oder beides auswirkt.
Rufen Sie ` beginFilterChange()` auf, wenn sich der Filterparameter ändern soll, und rufen Sie anschließend diese Funktion auf, sobald die Filterparameter geändert wurden. Rufen Sie die Funktion mit dem Parameter „ directions “ auf „ Direction::Rows “ gesetzt für Zeilenfilter (d. h., „ filterAcceptsRow()“ ist implementiert), auf „ Direction::Columns “ für Spaltenfilter (d. h., „ filterAcceptsColumn()“ ist implementiert) oder auf „ Direction::Both “, wenn beide Filterfunktionen implementiert sind.
Diese Funktion wurde in Qt 6.10 eingeführt.
[override virtual] void QSortFilterProxyModel::fetchMore(const QModelIndex &parent)
Implementiert: ` QAbstractProxyModel::fetchMore(const QModelIndex &parent)`.
[virtual protected] bool QSortFilterProxyModel::filterAcceptsColumn(int source_column, const QModelIndex &source_parent) const
Gibt „ true “ zurück, wenn das Element in der Spalte, die durch die angegebenen Parameter „ source_column “ und „ source_parent “ angegeben wird, in das Modell aufgenommen werden soll; andernfalls wird „ false “ zurückgegeben.
Hinweis: Die Standardimplementierung gibt immer „ true “ zurück. Sie müssen diese Methode neu implementieren, um das beschriebene Verhalten zu erzielen.
Siehe auch filterAcceptsRow(), setFilterFixedString(), setFilterRegularExpression() und setFilterWildcard().
[virtual protected] bool QSortFilterProxyModel::filterAcceptsRow(int source_row, const QModelIndex &source_parent) const
Gibt „ true “ zurück, wenn das Element in der Zeile, auf die die angegebenen „ source_row “ und „ source_parent “ verweisen, in das Modell aufgenommen werden soll; andernfalls wird „false“ zurückgegeben.
Die Standardimplementierung gibt ` true ` zurück, wenn der Wert des betreffenden Elements mit der Filterzeichenfolge, der Platzhalterzeichenfolge oder dem regulären Ausdruck übereinstimmt.
Hinweis: Standardmäßig wird der „ Qt::DisplayRole “ verwendet, um zu bestimmen, ob die Zeile akzeptiert werden soll oder nicht. Dies kann durch Setzen der Eigenschaft „ filterRole “ geändert werden.
Siehe auch „ filterAcceptsColumn()“, „ setFilterFixedString()“, „ setFilterRegularExpression()“ und „ setFilterWildcard()“.
[signal] void QSortFilterProxyModel::filterCaseSensitivityChanged(Qt::CaseSensitivity filterCaseSensitivity)
Dieses Signal wird ausgegeben, wenn sich die Groß-/Kleinschreibung des Filters auf „ filterCaseSensitivity “ ändert.
Hinweis: Benachrichtigungssignal für die Eigenschaft „ filterCaseSensitivity “.
[signal] void QSortFilterProxyModel::filterRoleChanged(int filterRole)
Dieses Signal wird ausgelöst, wenn sich die Filterrolle auf „ filterRole “ ändert.
Hinweis: Benachrichtigungssignal für die Eigenschaft „ filterRole “.
[override virtual] Qt::ItemFlags QSortFilterProxyModel::flags(const QModelIndex &index) const
Implementiert neu: ` QAbstractProxyModel::flags(const QModelIndex &index) const`.
[override virtual] bool QSortFilterProxyModel::hasChildren(const QModelIndex &parent = QModelIndex()) const
Implementiert neu: ` QAbstractProxyModel::hasChildren(const QModelIndex &parent) const`.
[override virtual] QVariant QSortFilterProxyModel::headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const
Implementiert neu: ` QAbstractProxyModel::headerData(int section, Qt::Orientation orientation, int role) const`.
Siehe auch ` setHeaderData()`.
[override virtual] QModelIndex QSortFilterProxyModel::index(int row, int column, const QModelIndex &parent = QModelIndex()) const
Implementiert: ` QAbstractItemModel::index` (int row, int column, const QModelIndex &parent) const.
[override virtual] bool QSortFilterProxyModel::insertColumns(int column, int count, const QModelIndex &parent = QModelIndex())
Implementiert: ` QAbstractItemModel::insertColumns` (int column, int count, const QModelIndex &parent).
[override virtual] bool QSortFilterProxyModel::insertRows(int row, int count, const QModelIndex &parent = QModelIndex())
Implementiert: QAbstractItemModel::insertRows(int row, int count, const QModelIndex &parent).
[slot] void QSortFilterProxyModel::invalidate()
Hebt die aktuelle Sortierung und Filterung auf.
Siehe auch beginFilterChange() und endFilterChange().
[protected, since 6.0, until 6.13] void QSortFilterProxyModel::invalidateColumnsFilter()
Diese Funktion wird in Version 6.13 als veraltet markiert.
Verwenden Sie stattdessen „ beginFilterChange()“ und „ endFilterChange(Direction::Rows)“.
Hebt die aktuelle Filterung für die Spalten auf.
Diese Funktion sollte aufgerufen werden, wenn Sie eine benutzerdefinierte Filterung (mit ` filterAcceptsColumn()`) implementieren und sich Ihre Filterparameter geändert haben. Der Unterschied zu ` invalidateFilter()` besteht darin, dass hier nicht ` filterAcceptsRow()` aufgerufen wird, sondern nur ` filterAcceptsColumn()`. Sie können diese Funktion anstelle von ` invalidateFilter()` verwenden, wenn Sie eine Spalte ausblenden oder einblenden möchten, in der sich die Zeilen nicht ändern.
Rufen Sie „ beginFilterChange()“ auf, bevor sich Ihre Filterparameter ändern.
Diese Funktion wurde in Qt 6.0 eingeführt.
Siehe auch „ invalidate()“, „ invalidateRowsFilter()“ und „ beginFilterChange()“.
[protected, until 6.13] void QSortFilterProxyModel::invalidateFilter()
Diese Funktion wird in Version 6.13 als veraltet markiert.
Verwenden Sie stattdessen „ beginFilterChange()“ und „ endFilterChange()“.
Macht die aktuelle Filterung ungültig.
Diese Funktion sollte aufgerufen werden, wenn Sie eine benutzerdefinierte Filterung implementieren (z. B. ` filterAcceptsRow()`) und sich Ihre Filterparameter geändert haben.
Rufen Sie beginFilterChange() auf, bevor sich Ihre Filterparameter ändern.
void MySortFilterProxyModel::setFilterMaximumDate(QDate date)
{
beginFilterChange();
maxDate = date;
endFilterChange(QSortFilterProxyModel::Direction::Rows);
}Siehe auch invalidate(), invalidateColumnsFilter(), invalidateRowsFilter() und beginFilterChange().
[protected, since 6.0, until 6.13] void QSortFilterProxyModel::invalidateRowsFilter()
Diese Funktion wird in Version 6.13 als veraltet markiert.
Verwenden Sie stattdessen „ beginFilterChange()“ und „ endFilterChange “ (Direction::Columns).
Hebt die aktuelle Filterung für die Zeilen auf.
Diese Funktion sollte aufgerufen werden, wenn Sie eine benutzerdefinierte Filterung (mit ` filterAcceptsRow()`) implementieren und sich Ihre Filterparameter geändert haben. Der Unterschied zu ` invalidateFilter()` besteht darin, dass hier nicht ` filterAcceptsColumn()` aufgerufen wird, sondern nur ` filterAcceptsRow()`. Sie können diese Funktion anstelle von ` invalidateFilter()` verwenden, wenn Sie eine Zeile ausblenden oder einblenden möchten, bei der sich die Spalten nicht ändern.
Rufen Sie „ beginFilterChange()“ auf, bevor sich Ihre Filterparameter ändern.
Diese Funktion wurde in Qt 6.0 eingeführt.
Siehe auch „ invalidate()“, „ invalidateFilter()“ und „ invalidateColumnsFilter()“.
[virtual protected] bool QSortFilterProxyModel::lessThan(const QModelIndex &source_left, const QModelIndex &source_right) const
Gibt „ true “ zurück, wenn der Wert des Elements, auf das der angegebene Index source_left verweist, kleiner ist als der Wert des Elements, auf das der angegebene Index source_right verweist; andernfalls wird „ false “ zurückgegeben.
Diese Funktion wird beim Sortieren als „ operator< “ verwendet und nutzt QAbstractItemModel::compareData().
Der Vergleich von „ QStrings“ erfolgt standardmäßig unter Berücksichtigung der Groß-/Kleinschreibung; dies kann mithilfe der Eigenschaft „ sortCaseSensitivity “ geändert werden.
Standardmäßig wird der mit den „ QModelIndex“ verknüpften „ Qt::DisplayRole “ für Vergleiche verwendet. Dies kann durch Setzen der Eigenschaft „ sortRole “ geändert werden.
Hinweis: Die übergebenen Indizes beziehen sich auf das Quellmodell.
Siehe auch „ sortRole “, „ sortCaseSensitivity “ und „ dynamicSortFilter “.
[override virtual] QModelIndex QSortFilterProxyModel::mapFromSource(const QModelIndex &sourceIndex) const
Implementiert neu: ` QAbstractProxyModel::mapFromSource(const QModelIndex &sourceIndex) const`.
Gibt den Modellindex im ` QSortFilterProxyModel ` zurück, wenn der ` sourceIndex ` aus dem Quellmodell angegeben wird.
Siehe auch mapToSource().
[override virtual] QItemSelection QSortFilterProxyModel::mapSelectionFromSource(const QItemSelection &sourceSelection) const
Implementiert neu: ` QAbstractProxyModel::mapSelectionFromSource(const QItemSelection &sourceSelection) const`.
[override virtual] QItemSelection QSortFilterProxyModel::mapSelectionToSource(const QItemSelection &proxySelection) const
Implementiert neu: ` QAbstractProxyModel::mapSelectionToSource(const QItemSelection &proxySelection) const`.
[override virtual] QModelIndex QSortFilterProxyModel::mapToSource(const QModelIndex &proxyIndex) const
Implementiert: ` QAbstractProxyModel::mapToSource(const QModelIndex &proxyIndex) const`.
Gibt den Quellmodellindex zurück, der dem angegebenen ` proxyIndex ` aus dem Sortierfiltermodell entspricht.
Siehe auch mapFromSource().
[override virtual] QModelIndexList QSortFilterProxyModel::match(const QModelIndex &start, int role, const QVariant &value, int hits = 1, Qt::MatchFlags flags = Qt::MatchFlags(Qt::MatchStartsWith|Qt::MatchWrap)) const
Implementiert neu: ` QAbstractItemModel::match(const QModelIndex &start, int role, const QVariant &value, int hits, Qt::MatchFlags flags) const`.
[override virtual] QMimeData *QSortFilterProxyModel::mimeData(const QModelIndexList &indexes) const
Implementiert neu: ` QAbstractProxyModel::mimeData(const QModelIndexList &indexes) const`.
[override virtual] QStringList QSortFilterProxyModel::mimeTypes() const
Implementiert erneut: ` QAbstractProxyModel::mimeTypes()` const.
[override virtual] QModelIndex QSortFilterProxyModel::parent(const QModelIndex &child) const
Implementiert neu: ` QAbstractItemModel::parent(const QModelIndex &index) const`.
[signal] void QSortFilterProxyModel::recursiveFilteringEnabledChanged(bool recursiveFilteringEnabled)
Dieses Signal wird ausgegeben, wenn die Einstellung des rekursiven Filters auf „ recursiveFilteringEnabled “ geändert wird.
Hinweis: Benachrichtigungssignal für die Eigenschaft „ recursiveFilteringEnabled “.
[override virtual] bool QSortFilterProxyModel::removeColumns(int column, int count, const QModelIndex &parent = QModelIndex())
Implementiert: ` QAbstractItemModel::removeColumns` (int column, int count, const QModelIndex &parent).
[override virtual] bool QSortFilterProxyModel::removeRows(int row, int count, const QModelIndex &parent = QModelIndex())
Implementiert: ` QAbstractItemModel::removeRows` (int row, int count, const QModelIndex &parent).
[override virtual] int QSortFilterProxyModel::rowCount(const QModelIndex &parent = QModelIndex()) const
Implementiert: ` QAbstractItemModel::rowCount(const QModelIndex &parent) const`.
[override virtual] bool QSortFilterProxyModel::setData(const QModelIndex &index, const QVariant &value, int role = Qt::EditRole)
Implementiert: ` QAbstractProxyModel::setData` (const QModelIndex &index, const QVariant &value, int role).
Siehe auch data().
[slot] void QSortFilterProxyModel::setFilterFixedString(const QString &pattern)
Legt die feste Zeichenfolge fest, die zum Filtern des Inhalts des Quellmodells verwendet wird, und zwar auf den angegebenen Wert „ pattern “.
Diese Methode setzt die Optionen für reguläre Ausdrücke zurück, berücksichtigt jedoch die Groß-/Kleinschreibung.
Hinweis: Der Aufruf dieser Methode aktualisiert den regulären Ausdruck und bricht dadurch die Bindung für „ filterRegularExpression “ auf. Dies hat jedoch keine Auswirkungen auf die Bindungen „ filterCaseSensitivity “.
Siehe auch setFilterCaseSensitivity(), setFilterRegularExpression(), setFilterWildcard() und filterRegularExpression().
[slot] void QSortFilterProxyModel::setFilterRegularExpression(const QString &pattern)
Legt den regulären Ausdruck fest, der zum Filtern des Inhalts des Quellmodells verwendet wird: „ pattern “.
Diese Methode sollte bei neuem Code bevorzugt werden, da sie intern „ QRegularExpression “ verwendet.
Diese Methode setzt die Optionen für den regulären Ausdruck zurück, berücksichtigt jedoch die Groß-/Kleinschreibung.
Hinweis: Der Aufruf dieser Methode aktualisiert den regulären Ausdruck und bricht dadurch die Bindung für „ filterRegularExpression “. Dies hat jedoch keine Auswirkungen auf die Bindungen „ filterCaseSensitivity “.
Hinweis: Setter -Funktion für die Eigenschaft „ filterRegularExpression “.
Hinweis: Dieser Slot ist überladen. So stellen Sie eine Verbindung zu diesem Slot her:
// Connect using qOverload:
connect(sender, &SenderClass::signal,
sortFilterProxyModel, qOverload(&QSortFilterProxyModel::setFilterRegularExpression));
// Or using a lambda as wrapper:
connect(sender, &SenderClass::signal,
sortFilterProxyModel, [receiver = sortFilterProxyModel](const QString &pattern) { receiver->setFilterRegularExpression(pattern); }); Siehe auch „ setFilterCaseSensitivity()“, „ setFilterWildcard()“, „ setFilterFixedString()“ und „ filterRegularExpression()“.
[slot] void QSortFilterProxyModel::setFilterWildcard(const QString &pattern)
Legt den Platzhalterausdruck fest, der zum Filtern des Inhalts des Quellmodells verwendet wird, und zwar auf den angegebenen „ pattern “.
Diese Methode setzt die Optionen für reguläre Ausdrücke zurück, berücksichtigt jedoch die Groß-/Kleinschreibung.
Hinweis: Der Aufruf dieser Methode aktualisiert den regulären Ausdruck und bricht dadurch die Bindung für „ filterRegularExpression “ ab. Dies hat jedoch keine Auswirkungen auf die Bindungen „ filterCaseSensitivity “.
Siehe auch setFilterCaseSensitivity(), setFilterRegularExpression(), setFilterFixedString() und filterRegularExpression().
[override virtual] bool QSortFilterProxyModel::setHeaderData(int section, Qt::Orientation orientation, const QVariant &value, int role = Qt::EditRole)
Implementiert: ` QAbstractProxyModel::setHeaderData` (int section, Qt::Orientation orientation, const QVariant &value, int role).
Siehe auch headerData().
[override virtual] void QSortFilterProxyModel::setSourceModel(QAbstractItemModel *sourceModel)
Implementiert: ` QAbstractProxyModel::setSourceModel` (`QAbstractItemModel *sourceModel`).
[override virtual] QModelIndex QSortFilterProxyModel::sibling(int row, int column, const QModelIndex &idx) const
Implementiert neu: ` QAbstractProxyModel::sibling(int row, int column, const QModelIndex &idx) const`.
[override virtual] void QSortFilterProxyModel::sort(int column, Qt::SortOrder order = Qt::AscendingOrder)
Implementiert: QAbstractProxyModel::sort(int column, Qt::SortOrder order).
Sortiert das Modell nach column in der angegebenen order. Ist der Sortier column -Wert kleiner als Null, wird das Modell nach der Quellmodellzeile in der angegebenen order sortiert.
Siehe auch ` sortColumn()` ().
[signal] void QSortFilterProxyModel::sortCaseSensitivityChanged(Qt::CaseSensitivity sortCaseSensitivity)
Dieses Signal wird ausgelöst, wenn sich die Groß-/Kleinschreibung bei der Sortierung auf „ sortCaseSensitivity “ ändert.
Hinweis: Benachrichtigungssignal für die Eigenschaft „ sortCaseSensitivity “.
int QSortFilterProxyModel::sortColumn() const
Gibt die aktuell für die Sortierung verwendete Spalte zurück
Hiermit wird die zuletzt verwendete Sortierspalte zurückgegeben. Der Standardwert ist -1, was bedeutet, dass dieses Proxy-Modell nicht sortiert.
Siehe auch ` sort()`.
[signal] void QSortFilterProxyModel::sortLocaleAwareChanged(bool sortLocaleAware)
Dieses Signal wird ausgelöst, wenn sich die Einstellung für die Lokalisierung auf „ sortLocaleAware “ ändert.
Hinweis: Notifier -Signal für die Eigenschaft „ isSortLocaleAware “.
Qt::SortOrder QSortFilterProxyModel::sortOrder() const
Gibt die aktuell für die Sortierung verwendete Reihenfolge zurück
Diese Funktion gibt die zuletzt verwendete Sortierreihenfolge zurück. Der Standardwert ist „ Qt::AscendingOrder “.
Siehe auch ` sort()`.
[signal] void QSortFilterProxyModel::sortRoleChanged(int sortRole)
Dieses Signal wird ausgelöst, wenn sich die Sortierrolle auf „ sortRole “ ändert.
Hinweis: Notifier -Signal für die Eigenschaft „ sortRole “.
[override virtual] QSize QSortFilterProxyModel::span(const QModelIndex &index) const
Implementiert neu: ` QAbstractProxyModel::span(const QModelIndex &index) const`.
[override virtual] Qt::DropActions QSortFilterProxyModel::supportedDropActions() const
Implementiert: ` QAbstractProxyModel::supportedDropActions()` const.
© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.