如何在QTreeView底部添加可滚动的空白区域
在QTreeView的底部展开一个项目时,视图不会自动滚动到显示新展开的项目。我可以通过检测展开事件,然后在合适的时候自己进行滚动来解决这个问题。
不过,我更希望能让用户滚动视图,超出当前允许的范围。现在,如果树形结构太高,无法完全显示在可见区域内,视图只能滚动到最底部的行才会出现。
我觉得这应该可以通过一些技巧来改变QTreeView的大小计算来实现,但即使我深入研究了源代码,我也不太明白QTreeView和它的基础类QAbstractScrollArea之间的互动,不知道该从哪里入手。
如果实在不行,我可能会在我的数据模型中添加一些虚拟的、不可编辑的行。
1 个回答
2
你可以通过增加树形视图的垂直滚动条的最大值来添加额外的空白区域。可以这样做:
max = self.treeview.verticalScrollBar().maximum()
self.treeview.verticalScrollBar().setMaximum(max*2)
希望这对你有帮助,祝好!