Python 窗口显示或主循环的事件已在TKinter中启动

Python 窗口显示或主循环的事件已在TKinter中启动,python,python-3.x,tkinter,Python,Python 3.x,Tkinter,Tkinter中是否存在我可以绑定的事件,该事件指示主窗口的创建已完成且窗口已显示,或者是否启动了mainloop() 您可以绑定到或事件 def task(event): ... root.bind("<Visibility>", task) 您可以绑定到或事件 def task(event): ... root.bind("<Visibility>", task) 挖掘之后,我发现了这个解决方案: root.wait_visibility() fo

Tkinter
中是否存在我可以绑定的事件,该事件指示主窗口的创建已完成且窗口已显示,或者是否启动了
mainloop()

您可以绑定到
事件

def task(event):
    ...
root.bind("<Visibility>", task)
您可以绑定到
事件

def task(event):
    ...
root.bind("<Visibility>", task)

挖掘之后,我发现了这个解决方案:

root.wait_visibility()
foo()
root.mainloop()
其中,foo()是您希望在GUI可见时运行的函数

参考:

挖掘时,我发现了以下解决方案:

root.wait_visibility()
foo()
root.mainloop()
其中,foo()是您希望在GUI可见时运行的函数

参考:

我测试了
。他们并没有按照我的想法去做。但是
after\u idle()
是一个很好的解决方法,可以满足我的需要。这些事件应该可以工作,但是如果在初始化期间调用
update
,这将触发这些事件。但是它们会被触发多次。我只需要一个事件。@buhtz:你说得对。我应该提到这一点。您只需检查事件对象的
小部件
属性,即可仅在根窗口上运行任务。这不起作用,因为事件首先发生在顶级窗口。这对我来说毫无意义。我想知道所有小部件何时最终创建和完成。我测试了
。他们并没有按照我的想法去做。但是
after\u idle()
是一个很好的解决方法,可以满足我的需要。这些事件应该可以工作,但是如果在初始化期间调用
update
,这将触发这些事件。但是它们会被触发多次。我只需要一个事件。@buhtz:你说得对。我应该提到这一点。您只需检查事件对象的
小部件
属性,即可仅在根窗口上运行任务。这不起作用,因为事件首先发生在顶级窗口。这对我来说毫无意义。我想知道所有小部件何时最终创建和完成。