我已经搜遍了所有地方。
我有一个python应用程序,我想检测一个键是否关闭(在OSX上)。
我能找到的唯一答案是用于Windows的库,或者需要应用程序窗口处于活动状态的库(如pygame)。
类似于pymouse如何使用position()方法。
我希望能够在我的代码中执行以下操作:
if keyboard.keydown(<key code>):
# do something
elif keyboard.keycode(<some other keycode>):
# do something
在Mac上。
答案 0 :(得分:2)
这是一个等待用户输入的最小示例,如果按下'a',则打印键码
#!/usr/bin/env python
import sys,tty
tty.setcbreak(sys.stdin)
key = ord(sys.stdin.read(1)) # key captures the key-code
# based on the input we do something - in this case print something
if key==97:
print "you pressed a"
else:
print "you pressed something else ..."
sys.exit(0)
希望它有所帮助!
注意:此解决方案专门针对linux / mac操作系统 - 对于windows还有其他方法!
答案 1 :(得分:-1)
带有tkinter的Python comex,一个包含跨平台按键和释放处理的gui框架。如果只想要事件处理,则可以抑制gui部分。这在我的Windows机器上按预期工作。它应该适用于你的Mac。
from time import sleep
import tkinter as tk
root = tk.Tk()
root.withdraw() # Do not show root window.
spacedown = False
def press_s(dummy):
global spacedown
spacedown = True
print('down')
def release_s(dummy):
global spacedown
spacedown = False
print('up')
root.bind('<KeyPress- >', press_s)
root.bind('<KeyRelease- >', release_s)
while True:
sleep(1)
root.update()
print('tick', 'down' if spacedown else 'up')
在绑定语句中,将后面的空格
-
替换为密钥(例如a
或*
)或keyname。每当您想要检测密钥的当前状态时,请调用root.update来处理排队事件并设置keydown。
答案 2 :(得分:-2)
您可以使用输入命令 真棒=输入(&#34;你有多棒&#34;)
虽然这需要用户按Enter键
那么你可以做这样的事情 打印(真棒)