2011-11-11 39 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)