如何在保持程序运行的同时自动退出画布?

时间:2017-07-13 18:27:41

标签: python canvas tkinter easygui

我目前有这段代码:

import easygui, random, time, math, sys
from Tkinter import *

root=Tk()
root.geometry('800x800')
c=Canvas(root, width=800, height=800)
c.pack()
done=False
x=1
while not done:
    #do something
    root.update()
    x=x+1
    if x>=5:
        c.destroy()
    else:
        done=False

y=easygui.buttonbox("The program should continue",
                    choices=['Yes','No'])

我希望程序在'if x> 5:'分支之后继续到我的代码的easygui部分。我看了这个问题,找到了c.destroy。不幸的是,它完全结束了我的代码,所以easygui按钮框甚至都没有出现。有没有人知道如何删除Tkinter画布,继续该程序。使用ttk代替easygui会解决我的问题吗?或者使用我正在使用的相同方法继续我的代码有一个简单的解决方法吗?

1 个答案:

答案 0 :(得分:0)

  

它完全结束了我的代码,因此easygui按钮框甚至不会出现。

不,它没有。它只是删除了窗口,然后你的代码仍然永远停留在循环中。除了c.destroy()之外,您还需要通过添加break

来停止while循环
if x>=5:
    c.destroy()
    break