如何在保留我的程序 运行 的同时自动退出 canvas?

How do I automatically quit a canvas while keeping my program running?

我目前有这个代码:

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 canvas,然后继续使用该程序。使用 ttk 而不是 easygui 可以解决我的问题吗?或者是否有一个简单的修复方法可以使用我正在使用的相同方法继续我的代码?

it ends my code entirely, so the easygui button box doesn't even appear.

不,不是。它只是删除了 window,然后您的代码仍然永远停留在循环中。除了 c.destroy() 之外,您还需要通过添加 break 来停止 while 循环:

if x>=5:
    c.destroy()
    break