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