このページでは

C

Repeater QML Type

提供されたモデルを使用して、いくつかのItemベースのコンポーネントをインスタンス化します。詳細...

Import Statement: import QtQuick
Since: Qt Quick Ultralite 1.0
Inherits:

Item

プロパティ

方法

  • var itemAt(int index) (since Qt Quick Ultralite 1.6)

詳細説明

Repeaterタイプは、多数の類似したアイテムを作成するために使用されます。モデルの各エントリに対して、デリゲートはモデルからのデータでシードされたコンテキストでインスタンス化されます。リピータのアイテムは通常、RowColumn のようなポジショナ型で囲まれ、リピータによって作成された複数のデリゲートアイテムを視覚的に配置します。

次のリピータは、行に Text アイテムのインスタンスを 3 つ作成します:

Item {
Row {
    padding: 10
    Repeater {
        model: 3
        Text {
            width: 100; height: 40
        text: "abc"
        }
    }
}
}

インスタンス化されたアイテムは、リピーターの親の子として順番に挿入されます。挿入は、親のスタッキング リスト内のリピーターの位置の直後から開始されます。これにより、リピーターをレイアウト内で使用することができます。例えば、以下のリピーターのアイテムは、赤い四角形と青い四角形の間にスタックされています:

Item {
Row {
    padding: 10
    Rectangle { width: 10; height: 20; color: "red" }
    Repeater {
        model: 10
        Rectangle { width: 20; height: 20; radius: 10; color: "green" }
    }
    Rectangle { width: 10; height: 20; color: "blue" }
}}

デリゲートは、リピータ内のデリゲートのインデックスを示す読み取り専用のインデックス・プロパティに公開されます。たとえば、次の Text デリゲートは、繰り返される各項目のインデックスを表示します:

Column {
    Repeater {
        model: 10
        Text { text: "I'm item " + index }
    }
}

リピータを使用する際の注意点

リピーター型は、リピーターが最初に作成されるときに、すべてのデリゲート項目を作成します。デリゲート項目の数が多く、すべての項目を同時に表示する必要がない場合、これは非効率的です。このような場合は、ListView のような他のビュータイプを使用するか(ビューにスクロールされたときにのみデリゲートアイテムが作成されます)、Dynamic Object Creation メソッドを使用して、必要なときにアイテムを作成することを検討してください。

また、RepeaterはItemベースであり、Item由来のオブジェクトのみを繰り返すことができることに注意してください。例えば、QtObject を繰り返すことはできません:

// bad code:
Item {
    // Can't repeat QtObject as it doesn't derive from Item.
    Repeater {
        model: 10
        QtObject {}
    }
}

プロパティーのドキュメント

delegate : Component

デリゲートは、リピーターによってインスタンス化された各アイテムを定義するテンプレートを提供します。


model : any

リピーターのデータを提供するモデル。

Qt Quick Ultralite の モデルとビューも参照してください


メソッドの説明

[since Qt Quick Ultralite 1.6] var itemAt(int index)

指定されたindex に作成された Item を返すか、index に item が存在しない場合は null を返します。

このメソッドはQt Quick Ultralite 1.6 で導入されました。


特定の Qt ライセンスの下で利用可能です。
詳細はこちら。