我想有一个列表来控制在qt中创建的应用程序中当前关闭的键。我使用keyPressEvent
和keyReleaseEvent
来控制何时按下某个键并将其放入列表中,并在使用event.key()
释放它时将其删除。
问题是,当按键关闭时,它不会按下按键,它会在释放和按下之间交替显示事件。现在,isAutoRepeat
函数控制是否重复键,所以如果这是假的,那么我添加或删除键。这在Windows中运行良好,但在Linux中,isAutoRepeat
函数始终返回false,并且当实际按下时,键在按下和释放之间交替。我想要做的是在列表中包含用户现在按下的键,例如WASD控件,所以我的问题是,是否有办法使用纯Qt控制它?因为我已经模拟了这种行为,它测量了按下或释放上一个键的时间。
我的功能如下:
def keyPressEvent(self, event):
if not event.isAutoRepeat():
self.keys.append(event.key())
def keyReleaseEvent(self, event):
if not event.isAutoRepeat():
self.keys.remove(event.key())