【问题标题】:PyQt equivalent of "keydown" event?PyQt 相当于“keydown”事件?
【发布时间】:2018-02-28 05:17:43
【问题描述】:

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

有这样的内置事件吗?

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

【问题讨论】:

    标签: python pyqt pyqt5 qkeyevent


    【解决方案1】:

    一种可能是使用QKeyEventisAutoRepeat()方法:

    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_())
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-08
      相关资源
      最近更新 更多