Tkinter - 如何在窗口的任何地方获得Keypress?

时间:2016-08-11 16:02:43

标签: python python-2.7 tkinter keypress

我正在尝试使用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帧处于活动状态时才注册按键的解决方案。

0 个答案:

没有答案