Repeater类型用于创建大量类似项,与其他视图类型一样,Repeater有一个model和一个delegate
属性:count:int delegate:Component 提供了实例化每个项的模板
model:var
信号:itemAdded(int index,Item item)
处理程序:onItemAdded
itemRemoved(int index,Item item)
处理程序:onItemRemoved
首次创建Repeater时,会创建其所有delegate项,如果存在大量delegate项,并且并非所有项都必须同时可见,则这可能会降低效率。
使用数字作为model
显示效果
import QtQuick
import QtQuick.Window
import "../common"
Column{
height:160
spacing:2
// Repeater{
model:10
// model:["Enterprise","Columbia","Challenger",
// "Discovery","Endeavour","Atlantis"]
// delegate: BlueBox{
// // required property int index
// width:160;height:30
// text:modelData + "(" + index + ")";
// }
// onItemAdded: console.log("item" + index +"added")
// }
Repeater{
model:ListModel{
ListElement{name:"Mercury";surfaceColor:"gray"}
ListElement{name:"Venus";surfaceColor:"yellow"}
ListElement{name:"Earth";surfaceColor:"blue"}
ListElement{name:"Mars";surfaceColor:"orange"}
ListElement{name:"Jupiter";surfaceColor:"orange"}
ListElement{name:"Saturn";surfaceColor:"yellow"}
ListElement{name:"Uranus";surfaceColor:"lightBlue"}
ListElement{name:"Neptune";surfaceColor:"lightBlue"}
}
delegate: BlueBox{
required property string name
required property color surfaceColor
width:160;height:30
text:name
radius:3
Rectangle{
anchors.left: parent.left
anchors.verticalCenter: parent.verticalCenter
anchors.leftMargin: 4
width: 16;height:16;radius:8
color:parent.surfaceColor
}
}
}
}
显示效果