我正在使用QML中的更多按钮实现列表视图。 列表和按钮将如下所示 “a b c d e moreButton”。 (其中b c d和e是字符串的元素),我的列表将包含5个以上的元素。单击更多按钮后,我需要从列表中获取接下来的5个元素。说 “f g h i j”等等它应该继续,直到显示列表中的所有元素。我的问题是如何从列表中获取前5个,第2个5等元素? 任何帮助表示赞赏。
答案 0 :(得分:2)
您可以这样做:
ListView
{
id: view
x: 50
width: 200; height: 500
property variant alphabetArray: ['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z' ]
function append( )
{
// @ToDoyourself : Check all the boundary conditions in this function
var loopTime = alphabetModel.count
for( var i = loopTime ; i <= loopTime+5 ; ++ i )
alphabetModel.append({ "name" : alphabetArray[i] })
}
model: ListModel
{
id: alphabetModel
ListElement { name: "a" }
ListElement { name: "b" }
ListElement { name: "c" }
ListElement { name: "d" }
ListElement { name: "e" }
}
footer:
Text
{
text : "More" ; font.pixelSize: 35 ; color : "grey"
MouseArea
{
anchors.fill: parent
onClicked:
{
append()
}
}
}
delegate:
Item
{
height: 100
Text
{
text: name
height: 20
font.pixelSize: 30
color: index === view.currentIndex ? "black" : "red"
MouseArea
{
anchors.fill: parent
onClicked: view.currentIndex = index
}
}
}
}
注意:在函数append()
中,我没有对数组进行任何边界检查。自己做这个练习。