如何在没有按钮的情况下关闭 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
替换为您的自定义循环,其中包括对成功登录的检查。
我知道有 .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
替换为您的自定义循环,其中包括对成功登录的检查。