Como desativar o duplo clique em renomear o arquivo comportamento em QTreeView e QFileSystemModel em PyQt?

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

Pergunta

Pergunta simples.Eu gostaria de usar F2 ou Enter para mudar o nome e faça duplo clique para abrir um arquivo.

Usando self.treeView.doubleClicked.connect(self.doubleclick) Eu posso fazer as coisas no meu self.doubleClick o método, mas a mudança de nome ainda é acionado.

O modelo não é só de leitura (model.setReadOnly(False)).

Foi útil?

Solução

Por padrão, o doubleClicked é emitido um sinal de pouco antes da edição normal de ação, que é realizada pelo QAbstractItemView.editar função.

Felizmente, esta função é virtual, então ele pode ser reimplementado em uma subclasse:

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)

Outras dicas

Eu não sei se você tem isso em python versões, mas em C++ Qt que você acabou de definir a editar dispara na QAbstractItemView:

void setEditTriggers ( EditTriggers triggers )

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top