如何不使用按钮关闭tkinter窗口而不完全关闭Python?

时间:2018-09-09 16:19:49

标签: python tkinter window exit

我知道有<div #modal class="modal fade" tabindex="-1" role="dialog" id={{dialogID}}> <div class="modal-dialog modal-dialog-centered" role="document"> <div class="modal-content"> <div class="modal-header"> <h5 class="modal-title">CodingJedi</h5> <button type="button" class="close" data-dismiss="modal" aria-label="Close" (click)="dialogHide()"> <span aria-hidden="true">&times;</span> </button> </div> <div class="modal-body"> <p>{{dialogMessage}}</p> </div> <div class="modal-footer"> <button type="button" class="btn btn-secondary" data-dismiss="modal" (click)="dialogHide()">Close</button> </div> </div> </div> </div> .destroy()等命令。但是,当从按钮参数中将这些命令从“ command”中取出时,按下该按钮时要执行的操作却没有不行。

我的情况是,当用户成功登录时,Tkinter窗口及其小部件应在pygame中的GUI打开后不久关闭。我只是不希望Tkinter窗口出现在我不再需要它而又不退出Python的情况下。我不需要按钮,因为我希望过程是自动的。

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

.exit()

1 个答案:

答案 0 :(得分:0)

在没有看到更多源代码的情况下,我认为问题是基于 where 您调用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,其中包括检查成功登录的信息。