将焦点设置为Python(和OS X)中的Tkinter窗口

时间:2014-05-03 10:50:32

标签: python tkinter tk

考虑以下MWE:

from Tkinter import *
root = Tk()
Label(root,text="foo").pack()
root.mainloop()

我想设置一个新创建的Tkinter窗口,该窗口不包含任何“可聚焦”控件,如按钮到前台。如果我运行上面的代码(从shell),窗口是不活动的,因此无法对键绑定做出反应。

有没有办法把这样的窗户带到前台?

[编辑] 我正在使用Python 2.7.5和OS X Mavericks。我从终端窗口运行代码,即使正确创建了Tkinter窗口,焦点也会停留在该窗口。

2 个答案:

答案 0 :(得分:0)

刚刚在IDLE上尝试过:

>>> from Tkinter import *
>>> root=Tk()
>>> root.focus_force()
>>> Label(root,text="foo").pack()
>>> root.mainloop()

像魅力一样工作!(编辑:在Windows上显然!)

编辑:This is a standard behavior

答案 1 :(得分:-1)

也许你做错了什么,因为下面对我来说非常合适: 可能是平台问题??

from Tkinter import *
root = Tk()
Label(root,text="foo").pack()

root.geometry("%dx%d+%d+%d" % (200,100,0,0))
#made it a bigger window to see better...
root.wm_attributes("-topmost", 1)
root.focus_force()

root.mainloop()