Помогите найти мою ошибку, а то я уже который день ломаю на дней голову.
Суть проблемы в следующем при закрытии программы PyCharm версий 2020.1,Выдает следующую ошибку:
C:\ForChildrens\Scripts\python.exe CUsers/mikki/PycharmProjects/ForChildrens/PaddleBall.py
Traceback (most recent call last):
File “C:\Users\mikki\PycharmProjects\ForChildrens\PaddleBall.py”, line 28, in <module>
ball.draw()
File “C:\Users\mikki\PycharmProjects\ForChildrens\PaddleBall.py”, line 10, in draw
self.canvas.move(self.id, 0, -1)
File “C:\Users\mikki\AppData\Local\Programs\Python\Python39\lib\tkinter\__init__.py”, line 2917, in move
self.tk.call((self._w, ‘move’) + args)
_tkinter.TclError: invalid command name “.!canvas”
Process finished with exit code 1
Также выкладываю листинг данной программы.
from tkinter import * import random import time class Ball: def __init__(self, canvas, color): self.canvas = canvas self.id = canvas.create_oval(10, 10, 25, 25, fill=color) self.canvas.move(self.id, 245, 100) def draw(self): self.canvas.move(self.id, 0, -1) tk = Tk() tk.title('Игра') tk.resizable(0, 0) tk.wm_attributes('-topmost', 1) canvas = Canvas(tk, width=500, height=400, bd=0, highlightthickness=0) canvas.pack() tk.update() ball = Ball(canvas, 'red') # def handler(): # global run # run = False # tk.protocol("WM_DELETE_ WINDOW", handler) # run = True while 1: ball.draw() tk.update_idletasks() tk.update() time.sleep(0.01) tk.mainloop() tk.destroy()