没有GUI的事件监听器

时间:2017-07-06 17:25:15

标签: python event-handling

我需要一个事件监听器,只要按一个键就会启动并退出我的脚本。所以这是一个脚本,让我知道是否按下了一个键:

import Tkinter as tk

def onKeyPress(event):
    text.insert('end', 'You pressed %s\n' % (event.char, ))

root = tk.Tk()
root.geometry('300x200')
text = tk.Text(root, background='black', foreground='white', font=('Comic Sans MS', 12))
text.pack()
root.bind('<KeyPress>', onKeyPress)
root.mainloop()

这很有效,但问题是我不需要GUI。我应该可以在任何我想要的地方按键。怎么可能?

1 个答案:

答案 0 :(得分:1)

像Rawing所说,你可以使用键盘库,例如:

import keyboard
keyboard.add_hotkey('a', lambda: print "a was pressed")

请注意,要使其正常工作,必须安装键盘库,您可以使用$ sudo pip install keyboard执行此操作 修改 您可能必须使用 $ sudo python -m pip install keyboard

修改 或者您可能必须使用 $ sudo py -m pip install keyboard

修改: 甚至 $ sudo -H pip install keyboard

另外,请注意我假设你正在使用python 2.7 编辑: 如果你想知道我为什么假设你使用的是python 2.7,那是因为你在GUI示例中使用了 from Tkinter import * ,而在python 2.7中, tkinter模块被称为&#34; Tkinter&#34;,而在python 3.6中,tkinter被称为&#34; tkinter&#34;所以在python 3中你应该使用 from tkinter import *(注意小写&#34; t&#34;相对于大写&#34; T&#34;在tkinter / Tkinter中)

另外,请注意键盘模块在Mac上不起作用(至少他们的pip页面只表示它们支持Windows和Linux,但如果运气好的话可能会有效)

最后,请注意我自己没有尝试过,因为我目前无法访问安装了python的计算机。如果它不起作用,请评论我,我会尝试找到另一个解决方案:) 编辑: @RezaSaadati已批准其有效。