如何获得Qt的关键?

时间:2014-12-13 17:11:37

标签: python qt pyqt

我想有一个列表来控制在qt中创建的应用程序中当前关闭的键。我使用keyPressEventkeyReleaseEvent来控制何时按下某个键并将其放入列表中,并在使用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())

0 个答案:

没有答案