PyQtのQTreeViewとQFileSystemModelでダブルクリックによるファイルの名前変更動作を無効にする方法は?

StackOverflow https://stackoverflow.com//questions/12670874

質問

素朴な疑問。F2 または Enter を使用して名前を変更し、ダブルクリックしてファイルを開きたいと考えています。

使用する self.treeView.doubleClicked.connect(self.doubleclick) 私は自分の中で物事を行うことができます self.doubleClick メソッドを使用しても、名前変更は引き続きトリガーされます。

モデルは読み取り専用ではありません (model.setReadOnly(False)).

役に立ちましたか?

解決

デフォルトでは、 doubleClicked 信号は、通常の編集アクションの直前に送信されます。この編集アクションは、 QAbstractItemView.edit 関数。

幸いなことに、この関数は仮想関数であるため、サブクラスで再実装できます。

class TreeView(QtGui.QTreeView):    
    def edit(self, index, trigger, event):
        if trigger == QtGui.QAbstractItemView.DoubleClicked:
            print 'DoubleClick Killed!'
            return False
        return QtGui.QTreeView.edit(self, index, trigger, event)

他のヒント

Python バージョンでこれがあるかどうかはわかりませんが、C++ Qt では QAbstractItemView で編集トリガーを設定するだけです。

void setEditTriggers ( EditTriggers triggers )

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top