在Python(和OS X)中将焦点设置到Tkinter窗口
考虑以下这个简单的例子:
from Tkinter import *
root = Tk()
Label(root,text="foo").pack()
root.mainloop()
我想让一个新创建的 Tkinter
窗口出现在最前面,这个窗口里没有任何可以“聚焦”的控件,比如按钮。如果我在命令行中运行上面的代码,这个窗口就会变得不活跃,因此无法响应键盘的操作。
有没有办法把这样的窗口放到最前面呢?
[编辑] 我使用的是 Python 2.7.5 和 OS X Mavericks。我是从终端窗口运行代码的,尽管 Tkinter
窗口创建得很好,但焦点还是停留在那个终端窗口上。
2 个回答
0
也许你做错了什么,因为下面的代码对我来说运行得很好:可能是平台的问题吧?
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()
5
我刚在IDLE上试了一下:
>>> from Tkinter import *
>>> root=Tk()
>>> root.focus_force()
>>> Label(root,text="foo").pack()
>>> root.mainloop()
效果非常好!(编辑:显然是在Windows上!)
编辑:这是一个标准的行为