在 PyQt 中,我可以定义一个 keyPress 和一个 keyRelease 事件,但是,只要按下键,就会连续触发 keyPress 事件,而我更喜欢在第一次按下键时触发一次的事件。
有这样的内置事件吗?
如果不是,那么创建一个最简单和正确(即同时按下多个键等)的方法是什么?
一种可能是使用以下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_())