2

在 PyQt 中,我可以定义一个 keyPress 和一个 keyRelease 事件,但是,只要按下键,就会连续触发 keyPress 事件,而我更喜欢在第一次按下键时触发一次的事件。

有这样的内置事件吗?

如果不是,那么创建一个最简单和正确(即同时按下多个键等)的方法是什么?

4

1 回答 1

3

一种可能是使用以下isAutoRepeat()方法QKeyEvent

from PyQt5.QtWidgets import *

class Widget(QWidget):
    def keyPressEvent(self, event):
        if not event.isAutoRepeat():
            print(event.text())

if __name__ == '__main__':
    import sys

    app = QApplication(sys.argv)
    w = Widget()
    w.show()
    sys.exit(app.exec_())
于 2018-02-28T05:34:01.150 回答