Comment désactiver le comportement de renommage de fichier en double-clic sur QTreeView et QFileSystemModel dans PyQt ?
-
12-12-2019 - |
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)
).
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 )