检查是否存在小部件(Tkinter)

时间:2012-11-01 18:57:29

标签: python tkinter

我想在删除之前检查小部件(例如画布上绘制的矩形)是否存在。

这是我的问题:我有两种删除矩形的方法。一个使用bind绑定到button-1(单击时删除矩形),另一个方法删除一个矩形,如果它在一定时间内没有被点击(使用Widget.after检查)。我想检查第二种方法中是否存在矩形,因为我想计算用户没有点击的矩形,我能想到的唯一方法是检查它是否已被删除。有没有办法做到这一点?当然,我可以在button-1事件处理程序中设置一个变量,并从另一个方法中检查它。但只是想知道Tkinter是否提供了诸如“item exists”之类的方法。

编辑:嗯,我刚发现一招。如果我在删除的小部件上使用itemconfig,我会得到空集。我使用该值来查看窗口小部件是否已被删除。我不确定这是否是一种优雅的方式。

1 个答案:

答案 0 :(得分:3)

在我看来,您可以使用Canvas.find_all来获取画布上所有项目的元组。然后你可以看到你的特定项目是in那个元组。 e.g:

if item in my_canvas.find_all():
   my_canvas.delete(item)
else:
   print("Item not on canvas")