Python Tkinter - 一段时间后隐藏窗口小部件

Mar*_*ito 4 python tkinter

我想绘制一个小部件(在这个例子中,一个画布),然后在一段时间后删除它.就像显示然后被删除的消息一样,只是为了让用户可以阅读它,但是没有必要点击"确定"或类似的东西来删除消息.

这是一个示例代码.

from tkinter import*

root = Tk()

canvas_1 = Canvas(root, width = 300, height = 300, bg = 'white')
canvas_1.grid(column = 0, row = 0)

canvas_2 = Canvas(canvas_1, width = 200, height = 200, bg = 'blue')
canvas_2.place(x = 50, y = 50)

canvas_1.after(1000, canvas_2.place_forget())

root.mainloop()
Run Code Online (Sandbox Code Playgroud)

问题是,after()无论何时在代码中调用它,tkinter似乎都会在其他所有方法之前运行该方法.结果是canvas_2永远不会出现.

我试过了,time.sleep()但在这种情况下似乎以同样的方式工作.

提前致谢.

gar*_*ary 5

问题是你的after陈述实际上canvas_2立即被遗忘.这是因为()告诉Python 运行place_forget函数(而不是在1000ms内运行它).删除(),你会很高兴.祝你好运.

替换这个:

canvas_1.after(1000, canvas_2.place_forget())
Run Code Online (Sandbox Code Playgroud)

有了这个:

canvas_1.after(1000, canvas_2.place_forget)
Run Code Online (Sandbox Code Playgroud)