0

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

4

1 回答 1

0

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

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

于 2013-06-08T07:03:14.010 回答