Как мне остановить QTreeWidget от перемещения позиции прокрутки? - PullRequest
2 голосов
/ 12 ноября 2011

У меня есть QTreeWidget с кучей QTreeWidgetItems.Каждый элемент имеет пару столбцов.Когда один из столбцов шире, чем ширина виджета, внизу появится полоса прокрутки.Когда я щелкаю QTreeWidgetItem внутри столбца, который шире, чем виджет, QTreeWidget автоматически прокручивается, чтобы попытаться получить как можно больше столбца внутри виджета.Я не хочу, чтобы это произошло.Как мне это отключить?

1 Ответ

5 голосов
/ 12 ноября 2011

Это поведение контролируется свойством QAbstractItemView.autoScroll , которое можно установить следующим образом:

treewidget.setAutoScroll(False)

Однако это свойство в основном используется для автоматической прокрутки виджета дерева.при перетаскивании элементов к краю области просмотра виджета.Поэтому, если это поведение все еще необходимо, может быть лучше переопределить событие нажатия мыши на виджете дерева, вместо этого:

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