Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Ошибка в коде

Кирилл У Ученик (147), на голосовании 3 недели назад
Exception in Tkinter callback
Traceback (most recent call last):
File "C:\Users\Kirill\AppData\Local\Programs\Python\Python312\Lib\tkinter\__init__.py", line 1968, in __call__
return self.func(*args)
^^^^^^^^^^^^^^^^
File "C:\Users\Kirill\PycharmProjects\pythonProject\наброски.py", line 24, in move_oval
x1, y1, x2, y2 = c.coords(a)
^^^^^^^^^^^
File "C:\Users\Kirill\AppData\Local\Programs\Python\Python312\Lib\tkinter\__init__.py", line 2851, in coords
self.tk.call ((self._w, 'coords') + args))]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_tkinter.TclError: wrong # coordinates: expected 0 or 4, got 1
Голосование за лучший ответ
Sergio 2.1 Оракул (65566) 1 месяц назад
Метод coords класса Canvas вызывается с неправильными аргументами.
Татьяна Просветленный (36345) 1 месяц назад
Ошибка, которую получаешь, связана с тем, что передаешь неправильное количество аргументов в метод coords() объекта Canvas в Tkinter.
Метод coords() ожидает либо 0 аргументов (чтобы получить координаты всех объектов на холсте), либо 4 аргумента (чтобы установить новые координаты для указанного объекта).
В твоем случае, судя по трассировке стека, ты пытаешься получить координаты объекта a с помощью c.coords(a), передаешь только один аргумент вместо 0 или 4.
Чтобы исправить ошибку, убедись, что передаешь правильное количество аргументов в coords()

Правильная реализация кода:
 from tkinter import Canvas 
def create_canvas():
c = Canvas()
return c
c = create_canvas()
Похожие вопросы