如何使用python 3检测密钥发布?
一样,如果我按下键a
1秒,当我从关键删除我的手指(释放键),它会print("Key 'a' pressed then released")
。如何使用python(而不是按键)检测密钥发布?
我试图用模块keyboard
来做,但我不知道它。我用它来检测按键。
msvcrt
模块不适合我,但如果msvcrt
可以做我想做的,那么你可以回答我。
注:
我不想使用Pygame
或任何其他module
这将显示弹出式窗口
一样,如果我按下键a
1秒,当我从关键删除我的手指(释放键),它会print("Key 'a' pressed then released")
。如何使用python(而不是按键)检测密钥发布?
我试图用模块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
好的工作,你解决了我的问题:) –
这是好的,但请让它更容易理解。 –
[**讨论聊天室**](https://chat.stackoverflow.com/rooms/151484/disccusions-between-franz-forstmayr-and-muhammad-nouman) –
可以使用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()
使用Tkinter的,并假设你使用python3,你可以这样做很容易类似Acafed的回答,:
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()
[?这(https://github.com/ boppreh /键盘#keyboard.on_release)。你可以在你提供的链接上点击一下 –
你的模块字面上包含一个你要求的例子:https://github.com/boppreh/keyboard/blob/master/examples/pressed_keys.py – BoboDarph