Почему возникает ошибка 'str' object has no attribute 'create_oval'
Всем привет! Я новичок в Python. Нужно написать программу, которая отображает квадратное окно размером 600 на 600, полностью заполненное областью для рисования. По центру области должна отображаться окружность радиусом 200. Вдоль этой окружности по часовой стрелке должна двигаться точка. Вот мой код:
import tkinter as tk
from math import cos, sin, radians
root = tk.Tk()
root.geometry("600x600")
canvas = tk.Canvas(root, background="white")
canvas.pack(fill="both", expand=True)
def create_circle(x, y, r, canvasName):
id = canvasName.create_oval(x-r, y-r, x+r, y+r)
return id
def move(angle):
if angle >= 360:
angle = 0
x = 200 * cos(radians(angle))
y = 200 * sin(radians(angle))
angle += 1
canvas.coords(point, 300+x, 300+y)
root.after(10, move, angle)
create_circle(300, 300, 200, 'canvas')
point = canvas.create_oval(299, 49, 301, 51, fill='black')
root.after(10, move, 0)
root.mainloop()
Но в строке id = canvasName.create_oval(x-r, y-r, x+r, y+r) возникает ошибка 'str' object has no attribute 'create_oval'
Почему?
Ответы (1 шт):
Автор решения: CrazyElf
→ Ссылка
id = canvasName.create_oval(x-r, y-r, x+r, y+r)
Рисовать нужно на canvas, а canvasName - это строка, на ней рисовать не получится.
id = canvas.create_oval(x-r, y-r, x+r, y+r)