2011-11-11 16 views
2

私はQTreeWidgetItemsの束を持つQTreeWidgetを持っています。各項目には2つの列があります。列の1つがウィジェットの幅よりも広い場合は、下部にスクロールバーが表示されます。ウィジェットよりも広い列の中のQTreeWidgetItemをクリックすると、QTreeWidgetは自動的にスクロールしてできるだけ多くのウィジェットを取得します。私はこれが起こることを望んでいない。これをどうやって消すのですか?QTreeWidgetのスクロール位置の移動を停止するにはどうすればよいですか?

treewidget.setAutoScroll(False) 

しかし、このプロパティは、主に、ウィジェットのエッジにアイテムをドラッグするときに自動的にツリーウィジェットをスクロールするために使用される:

答えて

5

これは動作では、このように設定することができるQAbstractItemView.autoScrollプロパティによって制御されビューポート。この動作がまだ必要な場合は、代わりにツリーウィジェットのmouse-pressイベントをオーバーライドする方が良いかもしれません。

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