如何确定每个对象都已从Tkinter画布中删除?

时间:2014-07-25 03:59:43

标签: python tkinter

我正在使用Tkinter设计蛇游戏。使用连续连接的矩形在画布上绘制蛇,并使用警报回调更新它的位置,如下所示:

def move(self):

    #move the snake here
    #root is the top level widget

    self.alarm_id = self.root.after(500, self.move)

玩家在游戏中完成一个舞台后,我想使用canvas.delete方法从画布中移除蛇并绘制一条具有高级功能的新蛇。

我尝试了这个但是在旧蛇从画布上清除之前,新的蛇正在被绘制,即使我按顺序执行操作。有没有办法可以避免这种操作重叠?我正在考虑一种以编程方式确定旧蛇中的每个矩形都已从画布中移除的方法。我查看了文档,但到目前为止我还没有成功。

1 个答案:

答案 0 :(得分:0)

假设您的画布名为self.canvas,我认为您可以使用self.canvas.find_all(),它返回画布上当前对象的元组。一旦这返回一个空元组,你就可以绘制下一条蛇了。