Estoy tratando de habilitar la tecla de borrar en mi vista de árbol. Esto es lo que tengo hasta ahora:Creando un filtro de evento
class delkeyFilter(QObject):
delkeyPressed = pyqtSignal()
def eventFilter(self, obj, event):
if event.type() == QEvent.KeyPress:
if event.key() == Qt.Key_Delete:
self.delkeyPressed.emit()
print 'delkey pressed'
return True
return False
conecto el eventfilter
así:
filter = delkeyFilter(self.dataTreeView)
self.dataTreeView.installEventFilter(filter)
¿Por qué necesito para pasar self.dataTreeview
al crear el filtro? No funciona sin eso.
* think * (pero no seguro, por lo tanto, no publicar como respuesta) que el recolector de basura de Python se comerá su filtro si no tiene un padre, porque la instalación del filtro de evento no crea una referencia (en el lado python de las cosas). Para verificar esto, intente mantener una referencia al 'filtro' (por ejemplo, diciendo' self.filter = ... ') pero sin pasarle a un padre. – balpha