如何确定当前项是否是ListView的一部分中的最后一项

时间:2016-03-11 21:58:01

标签: qt qml qabstractlistmodel

所以当我绘制我的ListView项时,我会将它们分成几部分。节中的每个项目都有一行作为下一个项目的分隔符。对于最后一项我不想绘制此分隔符。如何确定当前正在绘制的项目是否是该部分中的最后一项(不在ListView中?)?

4 个答案:

答案 0 :(得分:1)

看起来不可能搞清楚。但是,有可能以不同的方式获得相同的结果。而不是每个项目都有一行将它与下一个项目分开,而是将它与前一个项目分开,在段落委托中也有这一点,而不是为index === 0

答案 1 :(得分:1)

显然,ListView附加了名为sectionpreviousSectionnextSection的属性。有了这些,很容易找出下一个或上一个部分是否与当前部分相同。如果它不相同,则表示它是该部分中的最后一项。

答案 2 :(得分:0)

每个委托项都知道自己的索引,因此可以将其与ListView项目计数进行比较:

ListView {
    id: theListView
    model: ...
    delegate: Item {
        property bool isLast: index+1 < theListView.count ? false : true
        ...
    }
}

答案 3 :(得分:0)

如果模型是静态的而不是动态的,则

index == 0 显示模型的第一项(实际上是最新的)。这意味着,如果不时地用新项目更新listView,那么当新列表项到达时,index == 0将绑定到其他元素。