このページでは

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 タイプは、類似した項目を多数作成するために使用されます。他のビュータイプと同様に、Repeater にはモデルとデリゲートがあります。モデルの各エントリに対して、モデルからのデータが初期設定されたコンテキスト内でデリゲートがインスタンス化されます。 通常、リピーターのアイテムは、RowColumn などのポジショナー型で囲まれ、リピーターによって生成された複数のデリゲートアイテムを視覚的に配置します。

次の Repeater は、Row 内に Text アイテムのインスタンスを 3 つ作成します:

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

インスタンス化されたアイテムは、順序通りに Repeater の親要素の子要素として挿入されます。挿入は、親のスタックリスト内における Repeater の位置の直後から開始されます。これにより、レイアウト内で Repeater を使用することが可能になります。たとえば、次の Repeater のアイテムは、赤い長方形と青い長方形の間に配置されています:

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 }
    }
}

Repeater を使用する際の考慮事項

Repeater 型は、Repeater が最初に作成された時点で、すべてのデリゲート項目を作成します。デリゲート項目が多数あり、かつすべての項目を同時に表示する必要がない場合、これは非効率的になる可能性があります。 このような場合は、ListView (スクロールによって表示範囲に入ったときにのみデリゲート項目を作成する)などの他のビュー型を使用するか、Dynamic Object Creation メソッドを使用して、必要に応じて項目を作成することを検討してください。

また、Repeaterはアイテムベースであり、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を返します。インデックスにアイテムが存在しない場合はnullを返します。

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

特定のQtライセンスの下で利用可能です。
詳細はこちらをご覧ください。