¿Cómo deshabilitar el comportamiento de renombramiento de archivos de doble clic en QTeeView y QFilesSystemModel en PyQT?

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

Pregunta

Pregunta simple.Me gustaría usar F2 o ENTER FOR RENAME, y haga doble clic para abrir un archivo.

Uso de self.treeView.doubleClicked.connect(self.doubleclick) Puedo hacer las cosas en mi método self.doubleClick, pero el nombre de nombre todavía está activado.

El modelo no es solo de lectura (model.setReadOnly(False)).

¿Fue útil?

Solución

De forma predeterminada, la señal doubleClicked se emite justo antes de la acción de edición normal, que se lleva a cabo por el qabstractitevview.edit Función.

Afortunadamente, esta función es virtual, por lo que se puede reimpumentar en una subclase:

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)

Otros consejos

No sé si tiene esto en las versiones de Python, pero en C ++ QT, simplemente configura los activadores de edición en el QABSTRACTITEMVIEW:

void setEditTriggers ( EditTriggers triggers )

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top