FunctionSorter QML Type
Sortiert Daten in einem „ SortFilterProxyModel “ anhand der Auswertung der angegebenen „compare“-Methode. Mehr...
| Import Statement: | import QtQml.Models |
| Since: | Qt 6.10 |
| Inherits: | |
| Status: | Deprecated since 6.12 |
Dieser Typ ist seit QtQml.Models 6.12 veraltet. Wir raten dringend davon ab, ihn in neuem Code zu verwenden.
Ausführliche Beschreibung
Mit `FunctionSorter` kann der Benutzer die angegebene „compare“-Methode definieren, die zur Sortierung der Daten ausgewertet wird. Die Methode nimmt zwei Argumente (`lhs` und `rhs`) des angegebenen Parametertyps entgegen, und auf die Daten kann zur Auswertung wie folgt zugegriffen werden:
SortFilterProxyModel {
sourceModel: model
sorters: [
FunctionSorter {
id: functionSorter
component RoleData: QtObject {
property real age
}
function compare(lhsData: RoleData, rhsData: RoleData) : int {
return (lhsData.age < rhsData.age) ? -1 : ((lhsData === rhsData.age) ? 0 : 1)
}
}
]
}Warnung: Beide Parameter der Methode „ compare “ müssen eine explizite Typangabe enthalten, wie im obigen Beispiel bei „ lhsData “ und „ rhsData “, und beide Typangaben müssen auf denselben Typ verweisen. Die Methode „ compare “, die auf die übliche JavaScript-Weise ohne Parametertyp-Annotationen geschrieben ist, z. B. „ function compare(lhsData, rhsData) : int { ... } “, wird zwar ohne Warnung kompiliert, schlägt jedoch beim Vergleich fehl. „ FunctionSorter “ ist auf den annotierten Typ angewiesen, um zu wissen, welche Art von „role-data“-Objekt für „ lhsData “ und „ rhsData “ instanziiert und gefüllt werden soll; ohne diesen Typ gibt es nichts zu instanziieren.
Hinweis: Die Methode „ sort “ ist veraltet. Benennen Sie sie in „ compare “ um.
Hinweis: Die Funktion ` compare ` muss genau zwei explizit typangebegebene Parameter mit übereinstimmenden Typen und einen expliziten Rückgabetyp ` : int ` haben. Wenn diese Anforderungen nicht erfüllt sind, gibt der Sorter eine Warnung aus und bricht vorzeitig ab.
Hinweis: Der Benutzer muss „ SortFilterProxyModel::invalidateSorter “ explizit aufrufen, sobald sich eine externe QML-Eigenschaft ändert, die innerhalb der angegebenen „compare“-Methode verwendet wird. Dieses Verhalten kann sich in Zukunft ändern, beispielsweise durch implizite Invalidierung, sodass der Benutzer „ SortFilterProxyModel::invalidateSorter “ nicht mehr explizit aufrufen muss.
© 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.