Я учусь с помощью tkinter, и это связано с плавным движением фигур. Вот где я застрял.
Я получаю противоречивые ошибки рекурсии. Код работает без проблем в Windows 10, но на моем macOS он вылетает.
Кроме того, если время между рекурсиями составляет ≥ 17 миллисекунд, он просто перестает совершать ошибки и работает как задумано. Я упростил код, чтобы устранить одну проблему.
from tkinter import *
master = Tk()
canvas = Canvas(bg = "gray", width = 1000, height = 800)
canvas.pack()
cara = canvas.create_line(100,100,900,100, width = 5, fill = "red")
def moveCara():
canvas.move(cara, 0,1)
canvas.after(16, moveCara) # Here is the time setting, change it to 17 and the thing
# does not crash.
canvas.update()
moveCara()
mainloop()
Этот код вызывает сбой на моем MacBook:
RecursionError: maximum recursion depth exceeded during compilation
Однако, если яизмените время в canvas.after()
на 17 или больше, все работает. почему это?