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

标签 python tkinter

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

这是一个示例代码。

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() 但在这种情况下它似乎以相同的方式工作。

提前致谢。

最佳答案

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

替换这个:

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

用这个:

canvas_1.after(1000, canvas_2.place_forget)

关于Python Tkinter - 一段时间后隐藏一个小部件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11103741/

相关文章:

python - 在 Tkinter Canvas 小部件中输入文本

python - 在全屏模式下显示单个图像(如 powerpoint)

python - 从 dict 列表中删除具有相同 id 的 dict

python - Django 系统检查、迁移和测试在本地通过,但在 Docker CI/CD 环境中失败

Python 3 Pandas .groupby.过滤器

python - ('HY000' , 'The SQL contains 21 parameter markers, but 1 parameters were supplied' )

Python连续多次匹配正则表达式(不是findall方式)

python - 收集值后重置字符串数据

python - 如何从导入的脚本(tkinter、python)正确打开新窗口?

python - 带有用于 wxPython 或 Tkinter 的 GUI 设计器的漂亮 IDE