FunctionSorter QML Type
Trie les données d'un modèle « SortFilterProxyModel » en fonction de l'évaluation de la méthode « compare » désignée. En savoir plus…
| Import Statement: | import QtQml.Models |
| Since: | Qt 6.10 |
| Inherits: | |
| Status: | Deprecated since 6.12 |
Ce type est obsolète depuis QtQml.Models 6.12. Nous déconseillons fortement de l'utiliser dans du nouveau code.
Description détaillée
FunctionSorter permet à l'utilisateur de définir la méthode « compare » désignée, qui sera évaluée pour trier les données. La méthode prend deux arguments (lhs et rhs) du type de paramètre spécifié, et les données sont accessibles comme indiqué ci-dessous pour l'évaluation,
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)
}
}
]
}Avertissement : les deux paramètres de la méthode ` compare ` doivent comporter une annotation de type explicite, comme le font ` lhsData ` et ` rhsData ` dans l'exemple ci-dessus, et ces deux annotations doivent correspondre au même type. La méthode ` compare ` écrite selon la syntaxe JavaScript classique, sans annotations de type pour les paramètres, par exemple ` function compare(lhsData, rhsData) : int { ... }`, se compile sans aucun avertissement mais échoue lors de la comparaison. ` FunctionSorter ` s’appuie sur le type annoté pour savoir quel type d’objet `role-data` instancier et remplir pour ` lhsData ` et ` rhsData` ; sans cela, il n’y a rien à instancier.
Remarque : la méthode ` sort ` est obsolète. Renommez-la en ` compare`.
Remarque : la fonction ` compare ` doit comporter exactement deux paramètres explicitement annotés de types correspondants et un type de retour explicite ` : int `. Si ces conditions ne sont pas remplies, le trieur émet un avertissement et se termine prématurément.
Remarque : l’utilisateur doit appeler explicitement ` SortFilterProxyModel::invalidateSorter ` chaque fois qu’une propriété QML externe utilisée au sein de la méthode « compare » désignée change. Ce comportement est susceptible d’évoluer à l’avenir, à l’instar de l’invalidation implicite, et l’utilisateur n’aura alors plus besoin d’appeler explicitement ` SortFilterProxyModel::invalidateSorter`.
© 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.