如何在带有页面的 QML 中显示模型?
Posted
技术标签:
【中文标题】如何在带有页面的 QML 中显示模型?【英文标题】:How to display model in QML with pages? 【发布时间】:2021-01-11 20:35:37 【问题描述】:我在显示带有页面的模型时遇到问题,我找不到正确的方法。
我有ListView
,它有 15 个矩形的模型,如下图所示。
有一个属性currentPage
在单击按钮时会更改。我希望能够显示:
第一页 0-4 个元素第二页 5-9 个第三页最后 5 个。 em>
我知道我可以创建它们,例如 FirstPage.qml
、SecondPage.qml
... 并直接使用它们,但我想显示模型中的项目。 ListView
并不重要,它可以是任何组件,但我想使用模型。
实现这一目标的最佳方法是什么?欢迎任何想法建议。
【问题讨论】:
也许positionViewAtIndex
会有所帮助?
@JarMan 非常感谢您,这是一种解决方案。我将interactive: false
添加到我的列表中,并按照您的建议进行操作。如果有前任,唯一剩下的就是找到解决方案。在列表视图中腾出空间的 11 或 12 个元素结束,因此第 10 个元素出现在列表的顶部,但我会为此找到方法并发布更新。请将您的建议添加为答案,以便我将其标记为已解决。
看起来无法从文档中删除 :):If positioning the view at index would cause empty space to be displayed at the beginning or end of the view, the view will be positioned at the boundary.
但是如果你在最后一页中降低listView的高度并在其他情况下将其设置回原始高度,则可以使用。
【参考方案1】:
ListView 有一个名为positionViewAtIndex()
的方法,它允许您指定滚动到哪个项目。因此,对于您的情况,您可以执行以下操作:
Button
id: previousBtn
onClicked:
listView.positionViewAtIndex(listView.currentIndex - 5);
Button
id: nextBtn
onClicked:
listView.positionViewAtIndex(listView.currentIndex + 5);
【讨论】:
以上是关于如何在带有页面的 QML 中显示模型?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 python 中创建路径并将其显示在 qml 画布上