pythonttkinter在某个时间后隐藏一个小部件

2024-04-16 22:05:00 发布

您现在位置:Python中文网/ 问答频道 /正文

我想绘制一个小部件(在本例中是一个画布),然后在一段时间后将其移除。就像一条显示出来然后被删除的消息,只是为了让用户可以阅读它,但是不需要单击“确定”之类的东西来删除消息。在

下面是一个示例代码。在

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()

问题是tkinter似乎比其他任何东西都先运行after()方法,而不管在代码中何时调用它。结果是canvas_2永远不会出现。在

我尝试过time.sleep(),但在本例中,它的工作方式似乎是相同的。在

提前谢谢。在


Tags: 代码消息部件tkinter画布绘制placeroot
1条回答
网友
1楼 · 发布于 2024-04-16 22:05:00

问题是您的after语句实际上导致canvas_2立即被遗忘。这是因为()告诉Python运行place_forget函数(而不是在1000ms内运行)。去掉(),你就可以走了。祝你好运。在

替换此项:

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

有了这个:

^{pr2}$

相关问题 更多 >