PyQt: keyPressEvent y keyReleaseEvent - presionando sin rebote

Quiero implementar unQDialog, en el que se presiona una tecla durante un tiempo (segundos) y luego se suelta.

Traté de hacer esto conkeyPressEvent ykeyReleaseEvent funciones

El problema que obtengo es que cuando se presiona una tecla, el rebote (keyReleaseEvent) ocurre muy rápidamente, lo que no es deseable en mi caso.

Aquí, es lo que hago:

def keyPressEvent(self, eventQKeyEvent):
    key = eventQKeyEvent.key()
    if key == 54:
    print('pressed')  # 6


def keyReleaseEvent(self, eventQKeyEvent):
    key = eventQKeyEvent.key()
    if key == 54:
    print('released')  # 6

Salida:

'pressed'
'released'
'pressed'
'released'
'pressed'
'released'
...
'pressed'
'released'

Me gustaría obtener cualquiera:

'pressed'
'released'

o:

'pressed'
'pressed'
'pressed'
...
'pressed'
'pressed'
'released'

Respuestas a la pregunta(1)

Su respuesta a la pregunta