我有一个带有水平滚动条的QListView,其中插入了QStandardItems。当我在现有项目上拖动项目时,滚动条将根据QModelIndex移动。但是当我到达列表视图的末尾时,滚动条不会移动到列表视图的确切末尾。这里有3到4个像素的间隙。当我滚动到列表视图的开头时,会出现同样的问题。如何在dragMoveEvent期间滚动到listview的确切结尾或开头?
答案 0 :(得分:0)
启用autoScroll
后,视图会使用scrollTo(const QModelIndex& index, ScrollHint hint = EnsureVisible)
方法显示您结束的QModelIndex
,但不会考虑项目视图边距(项目之间)和视图框架。)
您需要重新实现dragMoveEvent(QDragMoveEvent* event)
以检查悬停的QModelIndex
是否是行中的最后一个,如果是,则将滚动条移动到相应的末尾。