PyQtのQTreeViewとQFileSystemModelでダブルクリックによるファイルの名前変更動作を無効にする方法は?
-
12-12-2019 - |
質問
素朴な疑問。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 )
所属していません StackOverflow