如何确定何时在QListView的底部/末尾?

时间:2013-07-21 19:13:44

标签: c++ qt qt4 qt5 qlistview

我正在使用QListView包装一个非常简单的列表模型。我想尝试实现类似于某些网页中看到的“无限滚动”的东西。

目前,该模型通过一种方法进行更新,该方法最多可添加100个项目(它们来自外部Web API,每次调用最多需要100个项目)。我的目标:当用户移动到列表视图的最后一个元素时(在我的情况下,通过向下滚动)我想开始调用以获得多达100个项目,依此类推。

在此示例中简化:

  1. 使用100个项目填充列表
  2. 向下滚动(按用户)到底部
  3. 其他100件物品。
  4. QListView中是否有任何内容告诉我何时在可见视图的末尾?

1 个答案:

答案 0 :(得分:3)

QListViewQAbstractScrollArea的子类,因此找出垂直滚动条的位置是否位于其极值之一的一种方法是:

  1. 通过致电QScrollBar获取QListView使用的verticalScrollBar()对象。
  2. 将滚动条的sliderMoved(int value)信号连接到您选择的插槽。
  3. 在插槽中,获取滚动条的最小值/最大值,并将它们与信号中给出的值进行比较。