如何在不使用pygame的情况下检测按键事件和按键事件
问题描述:
我目前正在寻找能够检测/监视键盘的库。 我的意图是检测键何时被按下,以及什么时候发生。如何在不使用pygame的情况下检测按键事件和按键事件
大多数SO帖子都建议使用pygame,但是我觉得它有点太多了,为了这个简单的任务需要一个类似库的库。我也试过用pynput
,结果只能检测到一台印刷机而不是一台印刷机。
如何,我可以让这个while循环检测键被按下/按住任何建议...
我与while循环的尝试:
from pynput import keyboard
def on_press(key):
while key == keyboard.Key.cmd_l:
try:
print('- Started recording -'.format(key))
except IOError:
print "Error"
else:
print('incorrect character {0}, press cmd_l'.format(key))
def on_release(key):
print('{0} released'.format(key))
if key == keyboard.Key.cmd_l:
print('{0} stop'.format(key))
keyboard.Listener.stop
return False
with keyboard.Listener(on_press=on_press, on_release=on_release) as listener:
listener.join()
的解决方案的同时,使其停留在while循环,使其无法摆脱它。
答
其中一个,我发现最简单的方法是使用pynput module.can这里很好的例子,以及
from pynput import keyboard
def on_press(key):
try:
print('alphanumeric key {0} pressed'.format(
key.char))
except AttributeError:
print('special key {0} pressed'.format(
key))
def on_release(key):
print('{0} released'.format(
key))
if key == keyboard.Key.esc:
# Stop listener
return False
收集事件被发现,直到发布
with keyboard.Listener(
on_press=on_press,
on_release=on_release) as listener:
listener.join()
以上工作的例子为我和安装,去
我试过t他编码你已经发布,并且它只能检测到一次按键,当按键被按下时,回调函数只被调用一次。 – Mama
你为什么不这个片段绑定到一个 '而真:'' 尝试block' – 2017-07-04 10:29:04
你的意思是 '而真:尝试:' 试了一下,但结果被卡在while循环,并不出去。 – Mama