我正在尝试使用Python(2.7.10)获取按键,我对getch()
没有运气,因为ord(getch())
不断返回255,所以我现在正在使用Tkinter。 (我相信Tkinter也是跨平台的,所以当我打算在Linux设备上运行这个脚本时应该有所帮助。)
我需要能够获得按键,即使在Tkinter窗口未激活时没有按下它们。
这是我的代码:
from Tkinter import *
import time, threading
x = "Hi!"
def callback(event):
x = "key: " + event.char
print(x)
def doTk():
root = Tk()
root.bind_all("<Key>", callback)
root.withdraw()
root.mainloop()
thread1 = threading.Thread(target=doTk)
thread1.deamon = True
thread1.start()
我没有发现任何错误,也没有注册按键。我也尝试过这种方法而不使用线程,但它仍然不起作用。
另请注意,我无法使用raw_input()
,因为我需要此功能才能在后台运行并仍能获得按键。
我知道这不会产生一个框架,我不希望它。
提前感谢您的任何帮助:)
PS:我已经查看了StackOverflow和其他网站上的其他答案,但它们都不起作用或提供仅在tkinter帧处于活动状态时才注册按键的解决方案。