C

重复器 QML 类型

使用提供的模型实例化一定数量的基于 Item 的组件。 更多...

导入声明import QtQuick
Qt Quick Ultralite 1.0
继承

Item

属性

方法

详细描述

重复器类型用于创建大量相似项。与其他视图类型一样,重复器有一个模型和一个代理:对于模型中的每个条目,代理都会在由模型提供的数据种子的上下文中实例化。重复器项通常嵌套在定位器类型中,例如 RowColumn,以便在视觉上定位由重复器创建的多个代理项。

示例

以下重复器在行中创建了三个文本项实例

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

代理可以通过只读索引属性公开,该属性指示代理在重复器中的索引。例如,以下文本代理显示每个重复项的索引

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

使用重复器时的注意事项

重复器类型在重复器首次创建时创建其所有代理项。如果有大量代理项,并且不是所有项都需要同时可见,这可能会导致效率低下。如果是这种情况,可以考虑使用其他视图类型,如 ListView(仅当项滚动到视图中时才创建代理项),或者使用动态对象创建方法按需创建项。

此外,请注意,重复器是基于项的,并且只能重复 Item 继承的对象。例如,它不能用于重复 QtObjects

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

属性文档

delegate : Component

代理提供了一个模板,定义了重复器实例化每个项的方式。


model : 任何类型

提供数据给重复器模型的模型。

另请参阅 Qt Quick Ultralite 中的模型和视图.


方法文档

[自 Qt Quick Ultralite 1.6 以来] var itemAt(int index)

返回在指定 index 处创建的项目,或者在索引处不存在项时返回 null。

此方法从 Qt Quick Ultralite 1.6 中引入。


在特定 Qt 许可证下提供。
了解更多信息。