DelegateChooser QML Type
ビューが、モデル内のアイテムの種類ごとに異なるデリゲートを使用できるようにします。詳細...
| Import Statement: | import QtQml.Models |
| Since: | Qt 6.9 |
プロパティ
詳細な説明
DelegateChooserは、ビューによってコンポーネントが要求され、デリゲートとして使用されるシナリオを想定した、Component の特殊な型です。 DelegateChooserは、一連のDelegateChoiceをカプセル化しています。これらの選択肢は、モデル内の各アイテムに対してインスタンス化されるデリゲートを決定するために使用されます。選択肢の選択は、モデルアイテムのrole プロパティの値と、インデックスに基づいて行われます。
DelegateChooserは、ビューが互いに大きく異なる一連のデリゲートを表示する必要がある場合に一般的に使用されます。 たとえば、一般的な携帯電話の設定ビューには、各設定の種類に応じて、トグルスイッチ、スライダー、ラジオボタン、その他の視覚的要素が含まれる場合があります。この場合、DelegateChooser を使用することで、各設定に異なる種類のデリゲートを関連付ける簡単な方法を提供できます:
import QtQml.Models
import QtQuick
import QtQuick.Controls
ListView {
width: 200; height: 400
ListModel {
id: listModel
ListElement { type: "info"; ... }
ListElement { type: "switch"; ... }
ListElement { type: "swipe"; ... }
ListElement { type: "switch"; ... }
}
DelegateChooser {
id: chooser
role: "type"
DelegateChoice { roleValue: "info"; ItemDelegate { ... } }
DelegateChoice { roleValue: "switch"; SwitchDelegate { ... } }
DelegateChoice { roleValue: "swipe"; SwipeDelegate { ... } }
}
model: listModel
delegate: chooser
}注:この タイプは 、TableView およびDelegateModel を基盤とするビューとのみ、透過的に動作するように設計されています。内部的にDelegateModel を基盤としていないビュー(ユーザー定義のビューを含む)では、説明どおりに機能させるために、このタイプのコンポーネントを明示的にサポートする必要があります。
「DelegateChoice」も参照してください 。
プロパティのドキュメント
choices : list<DelegateChoice> [default]
チョーサー用の DelegateChoices の一覧。
このリストは順序付きリストとして扱われ、ビューでは最初に一致したDelegateChoice が使用されます。
choices プロパティは、DelegateChooser のデフォルトプロパティであるため、通常、このプロパティを参照する必要はありません。したがって、すべての子アイテムはこのプロパティに自動的に割り当てられます。
role : string
このプロパティは、特定のモデル項目のデリゲートを決定するために使用されるロールまたはプロパティ名を保持します。
注:『 QAbstractItemModel 』ベースのモデル(『ListModel 』を含む)の場合 、モデルから役割が変更されたというシグナルが送信されると、DelegateChooser は選択内容を再評価します。その他のタイプのモデルについては、この選択は、特定のモデルインデックスに対応するアイテムが作成された際に一度だけ行われます。
「DelegateChoice」も参照してください 。
© 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.