如何更正python中的“异常在Tkinter回调”错误?

2024-09-30 22:15:28 发布

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

这是我的代码:

#Game Restart Func 

def restart_program():
    for widget in root.winfo_children():
        widget.destroy()

    button = Button(root, text='Stop', width=25, command=root.destroy)
    button.pack()

    b1 = Button(root, text="Restart", command=restart_program)
    b1.pack()

    g = GalagaGame(root)
    root.after(10, g.gameLoop())
    root.mainloop()

此函数是重新启动游戏的函数 主要函数是这样写的

^{pr2}$

但仍有一些奇怪的错误。在

Tkinter回调中出现异常

Traceback (most recent call last):
  File "C:\Users\Kim Donguk\AppData\Local\Programs\Python\Python36-32\lib\tkinter\__init__.py", line 1699, in __call__
    return self.func(*args)

  File "C:\Users\Kim Donguk\AppData\Local\Programs\Python\Python36-32\lib\tkinter\__init__.py", line 745, in callit
    func(*args)

  File "C:\Users\Kim Donguk\Desktop\Game project\game_source\game.py", line 281, in gameLoop
    self.paint(self.canvas)

  File "C:\Users\Kim Donguk\Desktop\Game project\game_source\game.py", line 260, in paint
    self.canvas.delete(ALL)

  File "C:\Users\Kim Donguk\AppData\Local\Programs\Python\Python36-32\lib\tkinter\__init__.py", line 2508, in delete
    self.tk.call((self._w, 'delete') + args)

_tkinter.TclError: invalid command name ".!canvas"

如何修复此错误?在


Tags: 函数inpyselfgametkinterlineroot