Repeater 重复器
在QML(Qt Modeling Language)中,Repeater元素用于创建多个相同或相似的项。
它通常与ListView、GridView或其他容器一起使用,以便动态生成多个项。
以下是一个简单的示例,展示如何在QML中使用Repeater:
import QtQuick 2.15
import QtQuick.Controls 2.15// 主应用程序窗口
ApplicationWindow {visible: true // 设置窗口可见width: 640 // 设置窗口宽度height: 480 // 设置窗口高度title: "Repeater Example" // 设置窗口标题// 定义一个列表模型,包含水果名称ListModel {id: fruitModel // 模型的唯一标识ListElement { name: "Apple" } // 列表元素,包含水果名称ListElement { name: "Banana" }ListElement { name: "Cherry" }ListElement { name: "Date" }}// 定义一个ListView,用于显示水果列表ListView {anchors.fill: parent // 将ListView填充到父窗口model: fruitModel // 设置ListView的数据模型为fruitModeldelegate: Rectangle { // 定义每个列表项的委托width: parent.width // 设置矩形的宽度与父元素相同height: 50 // 设置矩形的高度color: "lightgray" // 设置矩形的背景颜色border.color: "gray" // 设置矩形的边框颜色border.width: 1 // 设置矩形的边框宽度radius: 5 // 设置矩形的圆角半径// 在矩形中显示水果名称Text {anchors.centerIn: parent // 将文本居中对齐在父矩形中text: name // 设置文本内容为水果名称font.pixelSize: 18 // 设置文本的字体大小}}}
}
如果你希望直接使用Repeater而不依赖于ListView,可以这样做:
import QtQuick 2.15
import QtQuick.Controls 2.15ApplicationWindow {visible: truewidth: 640height: 480title: "Repeater Example"Column {anchors.centerIn: parentspacing: 10Repeater {model: ["Apple", "Banana", "Cherry", "Date"]delegate: Rectangle {width: 100height: 50color: "lightgray"border.color: "gray"border.width: 1radius: 5Text {anchors.centerIn: parenttext: modelDatafont.pixelSize: 18}}}}
}