滚动到包含QStandardItems的QListView的确切结尾或开头?

时间:2013-06-08 06:08:00

标签: qt qt4 scrollbar qlistview qstandarditemmodel

我有一个带有水平滚动条的QListView,其中插入了QStandardItems。当我在现有项目上拖动项目时,滚动条将根据QModelIndex移动。但是当我到达列表视图的末尾时,滚动条不会移动到列表视图的确切末尾。这里有3到4个像素的间隙。当我滚动到列表视图的开头时,会出现同样的问题。如何在dragMoveEvent期间滚动到listview的确切结尾或开头?

1 个答案:

答案 0 :(得分:0)

启用autoScroll后,视图会使用scrollTo(const QModelIndex& index, ScrollHint hint = EnsureVisible)方法显示您结束的QModelIndex,但不会考虑项目视图边距(项目之间)和视图框架。)

您需要重新实现dragMoveEvent(QDragMoveEvent* event)以检查悬停的QModelIndex是否是行中的最后一个,如果是,则将滚动条移动到相应的末尾。