Python 3.4 tkinter 按钮

Python 3.4 tkinter button

我的程序应该销毁 btn1 并在循环一秒后重新创建它。我不知道为什么,但我的程序只破坏了 btn1 并且不再显示它。有人知道为什么吗?

from tkinter import *
import random

def hide():
    btn1.destroy()
    btn1.after(2000,hide)

def show():
    btn1 = Button(root, bd=c, text="Hello\nWorld", relief="ridge", cursor="trek")
    btn1.grid(row=0,column=0)
    btn1.after(3000,show)

root = Tk()

root.geometry("350x150+400+400")

c=random.randint(20,40)

btn1 = Button(root, bd=c, text="Hello\nWorld", relief="ridge", cursor="trek")
btn1.grid(row=0,column=0)

btn1.after(2000,hide)
btn1.after(3000,show)

root.mainloop() 

如果您使用 grid_forget 而不是每次都创建一个新对象,它将起作用。请注意,在 6 秒的倍数 (2000 X 3000) 发生的情况取决于哪一个是最后执行的。

def hide():
    btn1.grid_forget()
    btn1.after(2000,hide)

def show():
    btn1.grid(row=0,column=0)
    btn1.after(3000,show)

root = Tk()

root.geometry("350x150+400+400")

c=random.randint(20,40)

btn1 = Button(root, bd=c, text="Hello\nWorld",
              relief="ridge", cursor="trek")
btn1.grid(row=0,column=0)

btn1.after(2000,hide)
btn1.after(3000,show)

root.mainloop()