Wie deaktiviere ich das Doppelklick-Umbenennungsverhalten von Dateien in QTreeView und QFileSystemModel in PyQt?
-
12-12-2019 - |
Frage
Einfache Frage.Ich möchte F2 oder die Eingabetaste zum Umbenennen verwenden und doppelklicken, um eine Datei zu öffnen.
Benutzen self.treeView.doubleClicked.connect(self.doubleclick)
Ich kann Dinge in meinem tun self.doubleClick
Methode, aber die Umbenennung wird trotzdem ausgelöst.
Das Modell ist nicht schreibgeschützt (model.setReadOnly(False)
).
Lösung
Standardmäßig ist die doubleClicked
Das Signal wird direkt vor der normalen Bearbeitungsaktion ausgegeben, die von ausgeführt wird QAbstractItemView.edit Funktion.
Glücklicherweise ist diese Funktion virtuell und kann daher in einer Unterklasse erneut implementiert werden:
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)
Andere Tipps
Ich weiß nicht, ob Sie dies in Python-Versionen haben, aber in C++ Qt legen Sie einfach die Bearbeitungsauslöser in QAbstractItemView fest:
void setEditTriggers ( EditTriggers triggers )