检测密钥是否已关闭mac python

时间:2016-09-30 15:55:48

标签: python macos python-2.7

我已经搜遍了所有地方。

我有一个python应用程序,我想检测一个键是否关闭(在OSX上)。

我能找到的唯一答案是用于Windows的库,或者需要应用程序窗口处于活动状态的库(如pygame)。

类似于pymouse如何使用position()方法。

我希望能够在我的代码中执行以下操作:

if keyboard.keydown(<key code>):
  # do something
elif keyboard.keycode(<some other keycode>):
  # do something

在Mac上。

3 个答案:

答案 0 :(得分:2)

我能想到的唯一方法是ttytermios

这是一个等待用户输入的最小示例,如果按下'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键

那么你可以做这样的事情 打印(真棒)