如果我两次调用此类,则第一次键盘焦点转到窗口。第二次没有。转义键用于关闭窗口,它第一次工作。第二次必须使用鼠标单击窗口才能使用转义键。焦点没有被传回,有什么事吗?我已经多次遇到过这个问题,但在这里我尽可能简单地抓住了它。这是代码:
from Tkinter import *
class Dialog(): # imagine this having buttons and stuff
def __init__(self):
root = Tk()
root.bind_all('<Escape>', lambda event :root.destroy())
root.mainloop()
# this simulates running a python terminal app which invokes a dialog at some point
Dialog() # this one accepts the key action
Dialog() # this one needs a mouse click in the window first
答案 0 :(得分:0)
我刚刚运行了代码,而在Windows 7中,它不需要时间关注。
你在运行什么操作系统?
此外,你可以通过抛出这一行来强制对焦于根窗口。
<强> root.focus_force()强>
答案 1 :(得分:0)
在使用X11作为窗口服务器并使用X终端或常规终端的Mac上,焦点始终转到对话窗口,因此转义键可以同时工作。在从cmd.exe终端运行的Windows XP上,焦点仅在第一次进入对话框。第二次必须先单击窗口。但是,使用root.focus_force()可以在任何地方使用它。非常感谢!