如何在没有按钮的情况下关闭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?的主要内容,如果未能解决你的问题,请参考以下文章

如何在没有收到“您要关闭此窗口”提示的情况下关闭浏览器窗口?

在没有父级的情况下关闭窗口(网络)

如何在不使用系统关闭按钮的情况下关闭MDI子项

有没有一种方法可以在不使用 ANTD 上的默认按钮的情况下关闭 Modal?

在不添加完成键的情况下关闭数字键盘式键盘

在没有触摸手势识别器的情况下关闭键盘