Comment désactiver le comportement de renommage de fichier en double-clic sur QTreeView et QFileSystemModel dans PyQt ?

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

Question

Question simple.J'aimerais utiliser F2 ou Entrée pour renommer et double-cliquer pour ouvrir un fichier.

En utilisant self.treeView.doubleClicked.connect(self.doubleclick) Je peux faire des choses dans mon self.doubleClick méthode, mais le changement de nom est toujours déclenché.

Le modèle n'est pas en lecture seule (model.setReadOnly(False)).

Était-ce utile?

La solution

Par défaut, le doubleClicked Le signal est émis juste avant l'action d'édition normale, qui est effectuée par le QAbstractItemView.edit fonction.

Heureusement, cette fonction est virtuelle, elle peut donc être réimplémentée dans une sous-classe :

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)

Autres conseils

Je ne sais pas si vous avez cela dans les versions Python, mais en C++ Qt, vous venez de définir les déclencheurs d'édition dans QAbstractItemView :

void setEditTriggers ( EditTriggers triggers )

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top