如何在没有按钮的情况下关闭tkinter窗口而不完全关闭Python?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在没有按钮的情况下关闭tkinter窗口而不完全关闭Python?相关的知识,希望对你有一定的参考价值。

我知道有一些命令,如.destroy().exit()等。但是,当从按钮参数中取出“命令”时,按下时采取的动作,它们不起作用。

我的方案是当用户成功登录时,包含其小部件的Tkinter窗口应该在pygame中的GUI打开后关闭。我只是不希望Tkinter窗口出现在我不再需要它的同时也不会退出Python。我不想要一个按钮,因为我希望这个过程是自动的。

令我困惑的是为什么当把这个命令单独拿出来时,它不起作用:

Button(root, text="Quit", command=root.destroy).pack() #works
root.destroy() #don't works
答案

没有看到更多的源代码,我想问题是基于你调用root.destroy()的地方

如果它是在阻止tk.mainloop()后,它永远不会到达。有关此问题,请阅读Tkinter understanding mainloop

基于以上内容的可能解决方案:

while True:
    tk.update_idletasks()
    tk.update()
    if login_successful: # or whatever your login check looks like
        root.destroy()

您将mainloop替换为自定义循环,其中包括检查是否成功登录。

以上是关于如何在没有按钮的情况下关闭tkinter窗口而不完全关闭Python?的主要内容,如果未能解决你的问题,请参考以下文章