如何使用 python(不是按键)检测按键释放?

新手上路,请多包涵

如何使用 python 3 检测密钥释放?

就像我按下键 a 1 秒钟,当我从键上移开手指 (松开键) 时,它将 print("Key 'a' pressed then released")

我试图用模块 keyboard 来做,但我不知道如何使用它。我曾经用它检测按键。

msvcrt 模块对我不起作用,但如果 msvcrt 可以做我想做的,那么你可以回答我。

笔记:

我不想使用 Pygame 或任何其他 module 将显示弹出窗口

原文由 Black Thunder 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.1k
2 个回答

您可以使用 pynput 模块:

 from pynput import keyboard

def on_key_release(key):
    print('Released Key %s' % key)

with keyboard.Listener(on_release = on_key_release) as listener:
    listener.join()

根据 pynput 的文档,键盘侦听器是一个线程,它使用 key 参数调用 on_release 上指定的函数。您还可以指定 on_press 函数。

编辑:

正如讨论中所要求的那样,您可以通过从 on_key_release 函数返回 false 来停止监听器。像那样:

 def on_key_release(key):
    print('Released Key %s' % key)
    return False

原文由 Franz Forstmayr 发布,翻译遵循 CC BY-SA 3.0 许可协议

您可以为此使用 tkinter

 from tkinter import *
def keyup(e):
    print('up', e.char)
def keydown(e):
    print('down', e.char)

root = Tk()
frame = Frame(root, width=100, height=100)
frame.bind("<KeyPress>", keydown)
frame.bind("<KeyRelease>", keyup)
frame.pack()
frame.focus_set()
root.mainloop()

原文由 Acafed 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏