在TkInter中自动激活主窗口

时间:2015-12-20 17:01:51

标签: python tkinter

是否可以自动激活tkinter应用程序的主窗口?我在Mac上使用优胜美地。当窗口出现时,标题栏显示为灰色,我必须先点击窗口才能响应事件。 Tk手册说event generate,&#34;生成一个窗口事件并安排它被处理,就像它来自窗口系统一样。&#34;我尝试生成<Button-1>事件,但它没有效果。手册接着说,&#34;某些事件,例如关键事件,要求窗口具有焦点以正确接收事件。&#34;我试过了focus_force,但它也没有用。

有可能做我想要的吗?这是Mac的特点吗?在下面的代码中,文本在鼠标光标进入和离开标签时发生变化,但在您点击窗口之前,应用程序没有响应。

import tkinter as tk    
root = tk.Tk()

def visit(event):
    kilroy['text'] = 'Kilroy was here.'
def gone(event):
    kilroy['text'] = 'Kilroy has left the building'
def startup():
    root.focus_force()
    root.event_generate('<Button-1>')    

frame = tk.Frame(root, width=500,height=100)
kilroy = tk.Label(frame, text="Kilroy hasn't been here.", width = 50)
kilroy.grid(row=0,column=0)
frame.grid(row=0,column=0)
kilroy.grid_propagate(0)
frame.grid_propagate(0)
kilroy.bind('<Enter>', visit)
kilroy.bind('<Leave>', gone)

root.after(100,startup)
root.mainloop()

0 个答案:

没有答案