是否可以自动激活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()