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

Bla*_*der 3 python msvcrt keyrelease python-3.x

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

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

我尝试使用模块来完成此操作keyboard,但我不知道如何使用它。我曾经用它来检测按键。
msvcrt模块不适合我,但如果msvcrt可以做我想要的,那么你可以回答我。

笔记:

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

Fra*_*ayr 7

您可以使用该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()
Run Code Online (Sandbox Code Playgroud)

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

编辑:

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

def on_key_release(key):
    print('Released Key %s' % key)
    return False
Run Code Online (Sandbox Code Playgroud)


小智 5

您可以使用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()
Run Code Online (Sandbox Code Playgroud)

  • 再次阅读我的评论。 (3认同)