如何阻止QTreeWidget移动滚动位置?

时间:2011-11-11 21:42:26

标签: python qt scroll pyqt qtreewidget

我有一个QTreeWidget和一堆QTreeWidgetItems。每个项目都有几列。当其中一列宽度小于窗口小部件的宽度时,底部会有一个滚动条。当我在比窗口小部件更宽的列中单击QTreeWidgetItem时,QTreeWidget将自动滚动以尝试尽可能多地获取窗口小部件中的列。我不希望这种情况发生。我该怎么关掉它?

1 个答案:

答案 0 :(得分:5)

这是行为由QAbstractItemView.autoScroll属性控制,可以这样设置:

treewidget.setAutoScroll(False)

但是,此属性主要用于在将项目拖动到窗口小部件视口的边缘时自动滚动树窗口小部件。因此,如果仍然需要此行为,则最好覆盖树窗口小部件的鼠标按下事件,而不是:

def mousePressEvent(self, event):
    self.setAutoScroll(False)
    QtGui.QTreeWidget.mousePressEvent(self, event)
    self.setAutoScroll(True)
相关问题