PyQt: keyPressEvent e keyReleaseEvent - mantendo pressionada a tecla sem rejeição

Eu quero implementar umQDialog, em que uma tecla é pressionada por algum tempo (segundos) e é liberada posteriormente.

Eu tentei fazer isso comkeyPressEvent ekeyReleaseEvent funções.

O problema é que, quando uma tecla é pressionada, a rejeição (keyReleaseEvent) ocorre muito rapidamente, o que não é desejado no meu caso.

Aqui está o que eu faço:

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

Resultado:

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

Gostaria de obter:

'pressed'
'released'

ou:

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

questionAnswers(1)

yourAnswerToTheQuestion