このページでは

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 にはモデルとデリゲートがあります。モデルの各エントリに対して、モデルからのデータが初期設定されたコンテキスト内でデリゲートがインスタンス化されます。 通常、リピーターのアイテムは、Row やColumn などのポジショナー型で囲まれ、リピーターによって生成された複数のデリゲートアイテムを視覚的に配置します。

例

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

また、Repeaterはアイテムベースであり、Itemから派生したオブジェクトのみを繰り返すことができる点に注意してください。たとえば、QtObjectsを繰り返すために使用することはできません:

// 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 で作成されたアイテムを返します。インデックスにアイテムが存在しない場合はnullを返します。

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

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