DelegateChooser QML Type

ビューがモデル内の異なる種類のアイテムに対して異なるデリゲートを使用できるようにします。詳細...

Import Statement: import Qt.labs.qmlmodels

プロパティ

詳細説明

DelegateChooserは、Componentがビューで必要とされ、デリゲートとして使用されるシナリオのための特別なComponent 型です。DelegateChooser は、DelegateChoiceのセットをカプセル化します。 これらの選択肢は、モデル内の各項目に対してインスタンス化されるデリゲートを決定するために使用されます。選択肢の選択は、モデル項目がrole に持つ値に基づいて、またインデックスに基づいて実行されます。

DelegateChooserは、ビューが互いに大きく異なるデリゲートのセットを表示する必要がある場合に、一般的に使用されます。例えば、典型的な電話設定ビューには、トグルスイッチ、スライダ、ラジオボタン、および各設定のタイプに基づくその他のビジュアライゼーションが含まれるかもしれません。この場合、DelegateChooserは、各設定に異なるタイプのデリゲートを関連付ける簡単な方法を提供できる:

import QtQuick
import QtQuick.Controls
import Qt.labs.qmlmodels

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]

Chooser の DelegateChoices のリスト。

このリストは順序付きリストとして扱われ、最初にマッチしたDelegateChoice がビューとして使用されます。

choices プロパティはDelegateChooser のデフォルトプロパティであり、したがって、すべての子項目は自動的にこのプロパティに割り当てられるため、通常、参照する必要はありません。


role : string

このプロパティは、指定されたモデルアイテムのデリゲートを決定するために使用されるロールまたはプロパティ名を保持します。

注: ListModel を含むQAbstractItemModel ベースのモデルの場合、DelegateChooser は、モデルが役割が変更されたことを通知すると、選択を再評価します。その他のタイプのモデルでは、この選択は、与えられたモデルインデックスの項目が作成されるときに一度だけ行われます。

DelegateChoiceも参照してください


このドキュメントに含まれるコントリビューションの著作権は、それぞれの所有者に帰属します 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。