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



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

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

我尝试使用模块keyboard来做到这一点,但我不知道如何使用它。我曾经用它检测按键.
msvcrt模块对我不起作用,但如果msvcrt可以做我想做的事,那么你可以回答我。

注意:

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

您可以使用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

你可以使用它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 的答案类似,使用 tkinter 并假设您使用的是 python3,您可以通过这种方式轻松完成:

from tkinter import Tk,Frame #importing only necessary stuff.
def keyrelease(e):
print('The key was released: ', repr(e.char))
root = Tk()
f = Frame(root, width=100, height=100)
f.bind("<KeyRelease>", keyrelease)
f.pack()
root.mainloop()

相关内容

  • 没有找到相关文章

最新更新