2011-11-11 38 views
2

我有一堆QTreeWidgetItems的QTreeWidget。每个项目都有几列。当其中一列的宽度大于小部件的宽度时,底部将出现一个滚动条。当我点击一个比窗口小部件更宽的列中的QTreeWidgetItem时,QTreeWidget会自动滚动以尝试尽可能多地获取窗口部件中的列。我不希望发生这种情况。我如何关闭此功能?如何停止QTreeWidget移动滚动位置?

treewidget.setAutoScroll(False) 

但是,此属性主要用于拖动物品到小部件的边缘时自动滚动树部件:

回答

5

这是行为是由QAbstractItemView.autoScroll属性,它可以设置这样的控制视。因此,如果仍然需要此行为,则可能会更好地覆盖树部件的鼠标按下事件,而不是:

def mousePressEvent(self, event): 
    self.setAutoScroll(False) 
    QtGui.QTreeWidget.mousePressEvent(self, event) 
    self.setAutoScroll(True)