3

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

4

1 回答 1

6

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

treewidget.setAutoScroll(False)

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

def mousePressEvent(self, event):
    self.setAutoScroll(False)
    QtGui.QTreeWidget.mousePressEvent(self, event)
    self.setAutoScroll(True)
于 2011-11-12T15:28:37.477 回答