FunctionSorter QML Type
SortFilterProxyModel 内のデータを、指定された「compare」メソッドの評価結果に基づいてソートします。詳細...
| Import Statement: | import QtQml.Models |
| Since: | Qt 6.10 |
| Inherits: | |
| Status: | Deprecated since 6.12 |
この型は QtQml.Models 6.12 以降、非推奨となっています。新しいコードでの使用は強く推奨しません。
詳細な説明
FunctionSorter を使用すると、指定された「compare」メソッドをユーザーが定義でき、その評価結果に基づいてデータがソートされます。このメソッドは、指定されたパラメータ型の 2 つの引数 (lhs および rhs) を受け取り、評価のために以下のようにデータにアクセスできます。
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)
}
}
]
}警告: compare メソッドの両方のパラメータには 、上記の例にあるlhsData およびrhsData のように、明示的な型注釈を付ける必要があり、両方の注釈は同一の型に解決されなければなりません。 パラメータの型注釈を付けずに、通常の JavaScript の書き方で記述されたcompare メソッド(例:function compare(lhsData, rhsData) : int { ... } )は、警告なしでコンパイルされますが、比較を行うと失敗します。FunctionSorter は、lhsData およびrhsData に対して、どのような role-data オブジェクトをインスタンス化してデータを設定すべきかを判断するために、型注釈に依存しています。型注釈がない場合、インスタンス化する対象が存在しません。
注: sort メソッドは 非推奨です。compare にリネームしてください。
注: compare 関数には 、型が一致する明示的な型注釈付きパラメータが正確に2つあり、かつ明示的な: int の戻り値型が指定されている必要があります。これらの要件が満たされていない場合、ソーターは警告を出力し、早期に処理を終了します。
注: 指定された「compare」メソッド内で使用される外部 QML プロパティが変更されるたびに、ユーザーは SortFilterProxyModel::invalidateSorter を明示的に呼び出す必要があります。この動作は、暗黙的な無効化と同様に将来変更される可能性があり、その場合はユーザーが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.