我希望实现一个QDialog
,其中一个键被按下一段时间(秒)并在之后被释放。
我尝试使用keyPressEvent
和keyReleaseEvent
函数执行此操作。
我得到的问题是当按下一个键时,去抖(keyReleaseEvent
)很快就会发生,这在我的情况下是不可取的。
在这里,我做的是:
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
输出:
'pressed'
'released'
'pressed'
'released'
'pressed'
'released'
...
'pressed'
'released'
我想得到:
'pressed'
'released'
或:
'pressed'
'pressed'
'pressed'
...
'pressed'
'pressed'
'released'
答案 0 :(得分:1)
您需要使用isAutoRepeat:
def keyReleaseEvent(self, eventQKeyEvent):
key = eventQKeyEvent.key()
if key == 54 and not eventQKeyEvent.isAutoRepeat():
print('released')