如何使用python检测按键释放(而不是按键)? 如何使用python 3检测密钥释放?
例如,如果我按下a键1秒钟,当我将手指从键中取出(释放键)时,它将如何使用python检测按键释放(而不是按键)? 如何使用python 3检测密钥释放?,python,python-3.x,msvcrt,keyrelease,Python,Python 3.x,Msvcrt,Keyrelease,例如,如果我按下a键1秒钟,当我将手指从键中取出(释放键)时,它将打印(“按下a键,然后释放”) 我试着用模块来做,但我不知道如何用它来做这个。我曾经用它来检测按键。 msvcrt模块对我不起作用,但是如果msvcrt可以做我想做的事情,那么你可以回答我 注: 我不想使用Pygame或任何其他将显示弹出窗口的模块您可以使用tkinter: from tkinter import * def keyup(e): print('up', e.char) def keydown(e):
打印(“按下a键,然后释放”)
我试着用模块来做,但我不知道如何用它来做这个。我曾经用它来检测按键。msvcrt
模块对我不起作用,但是如果msvcrt
可以做我想做的事情,那么你可以回答我
注:
我不想使用
Pygame
或任何其他将显示弹出窗口的模块
您可以使用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导入*
def键控(e):
打印('up',e.char)
def按键关闭(e):
打印('down',e.char)
root=Tk()
框架=框架(根,宽度=100,高度=100)
frame.bind(“,向下键)
frame.bind(“,keyup)
frame.pack()
frame.focus_set()
root.mainloop()
您可以使用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()
根据键盘侦听器的文档,它是一个线程,它使用键参数调用发布时上指定的函数。您还可以在按下按钮时指定功能
编辑:
如讨论中所述,您可以通过从on_key\u release
功能返回false
来停止侦听器。就像这样:
def on_key_release(key):
print('Released Key %s' % key)
return False
与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()
从tkinter导入Tk,Frame#只导入必要的内容。
def钥匙释放(e):
打印('密钥已释放:',repr(e.char))
root=Tk()
f=框架(根,宽度=100,高度=100)
f、 绑定(“,键释放)
f、 包()
root.mainloop()
。你可以关注一下你提供的链接。你的模块包含一个符合你要求的示例:很好,但请让它更容易理解。请再次阅读我的评论。哦,它可以不以其他方式弹出,我想我知道这种方式,也许其他人知道其他方式。。。