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

How to close tkinter window without a button and not closing Python completely?

我知道有 .destroy().exit() 等命令。但是,当从 'command' 按钮参数中取出这些命令时采取什么操作按下,它们不起作用。

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

令我困惑的是,为什么当单独执行此命令时,它不起作用:

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

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

如果它在阻塞tk.mainloop()之后出现,它将永远无法到达。请阅读有关此问题的

基于上述的可能的解决方案:

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

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