Wie deaktiviere ich das Doppelklick-Umbenennungsverhalten von Dateien in QTreeView und QFileSystemModel in PyQt?

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

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)).

War es hilfreich?

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 )

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top