【问题标题】:Python keypress event detection using keyboard module使用键盘模块的Python按键事件检测
【发布时间】:2020-07-03 08:15:22
【问题描述】:

我使用键盘模块为代码实现了按键事件检测器。我需要在for 循环内检测while 循环内的按键事件。代码如下

import keyboard

for i in range(5):
    loop = True
    while loop:
        if keyboard.is_pressed("space"):
            print("Iteration: {}\tSpace key pressed!".format(i))
            loop = False

按下space键一次后显示输出:

Iteration: 0    Space key pressed!
Iteration: 1    Space key pressed!
Iteration: 2    Space key pressed!
Iteration: 3    Space key pressed!
Iteration: 4    Space key pressed!

我希望它仅在按键被按下时检测。 is_pressed 将其设置为 true 一旦按下该键。有没有其他方法可以只检测一次并将is_pressed 重置为false?

【问题讨论】:

    标签: python-3.x keyboard-events


    【解决方案1】:

    如果您在每次检查按键之间引入一些延迟(约 0.2 秒),则以下代码将起作用。

    import keyboard
    import time
    
    delay = 0.2 # or >= 0.2 secs works fine
    
    for i in range(5):
        loop = True
        while loop:
            if keyboard.is_pressed("space"):
                print("Iteration: {}\tSpace key pressed!".format(i))
                loop = False
                time.sleep(delay) # adding delay between each checks
    

    【讨论】:

      【解决方案2】:
      import keyboard
      import time
      
      yes = 1
      delay = 0.2 # or >= 0.2 secs works fine
      
      for i in range(5):
          loop = True
          while loop:
              if keyboard.is_pressed("space"):
                  if yes = 1:
                      yes = 0
                      print("Iteration: {}\tSpace key pressed!".format(i))
                      loop = False
              else:
                  yes = 1
      

      【讨论】:

        猜你喜欢
        • 2022-11-17
        • 2019-03-05
        • 2023-03-11
        • 2021-11-08
        • 2019-03-25
        • 2010-09-22
        • 2014-06-22
        • 1970-01-01
        相关资源
        最近更新 更多