mar*_*trz 10 qt listview list qml
我创建了一个ListView,它显示了用户定义的几页内容(纯文本).显示的页面是委托.一次只能看到一个页面.我决定使用它来捕捉到一个项目,就像iOS'启动器的工作原理一样.用户只需在页面之间轻弹即可.(这将用于触摸屏)
我需要有一些操作的当前显示页面的索引.ListView的currentIndex始终保持== 0.我怎样才能得到它?
对于喜欢代码的人:
ListView
{
onCurrentIndexChanged: console.log(currentIndex) // this gets called only once - at startup
delegate: Column
{
// The page displayed, only one page at a time
}
}
Run Code Online (Sandbox Code Playgroud)
谢谢
mcc*_*chu 12
有很多方法可以获取屏幕中显示的当前项目的索引.如果可以获取当前页面的xy坐标,则可以在ListView中使用indexAt方法.
在每个委托中,您可以index在委托范围内使用角色查找索引.该index像你在你的模型中声明的作用,并通过自动分配的ListView.例如,
ListView
{
delegate: Column
{
property int indexOfThisDelegate: index
//...
}
}
Run Code Online (Sandbox Code Playgroud)
这里index介绍的角色是:
委托也可以使用包含模型中项目索引的特殊索引角色.请注意,如果从模型中删除项目,则此索引设置为-1
另一种方法是currentItem在ListView中为属性显式赋值,因此视图可以自行滚动.这是Qt文档中的一个简单示例,它与您的应用程序类似.