Ошибки новичков в анимации Python с отображением AFTER и CanvasPython

Программы на Python
Anonymous
Ошибки новичков в анимации Python с отображением AFTER и Canvas

Сообщение Anonymous »

Мой код просто рисует набор горизонтальных линий внутри круга в окне. Я написал это так, чтобы между прорисовкой линий была пауза. Для этого я использовал функцию «ПОСЛЕ». Однако он выполняется без каких-либо задержек и показывает только готовый экран (все итерации завершены). Он останавливается, когда превышено максимальное количество итераций. Я не нашел способа остановить код, подсчитав количество циклов и т. д. Я много читал на форумах, но не нашел объяснения, которому я мог бы следовать.
Я, должно быть, что-то упустил. очень просто, поэтому эта просьба о помощи.
Я создал окно, холст и успешно нарисовал на нем все. Я могу вызвать функцию, которая рисует линию, но не могу заставить функцию ПОСЛЕ отложить этот вызов. Если я повторяю вызов, вызывая саму функцию (я так понимаю, это рекомендуемый метод создания анимации), то окно с холстом вообще не открывается до тех пор, пока программа не завершится (из-за превышения количества разрешенных итераций). Если я что-нибудь напечатаю во время выполнения (например, чтобы отследить работу кода), то опять же окно с канвасом не откроется.
Код здесь:
from tkinter import *

# **setup canvas**
window = Tk()
window.title("solid show")
window.resizable(False, False)
window.tk_setPalette(background='#000000')

canvas_width = 600
canvas_height = 600
mycanvas=Canvas(window,width=canvas_width,height=canvas_height)

# **FUNCTION TO DRAW LINES**
def drawlines(movestep):
mycanvas.create_line(150, movestep, 300, movestep,fill="#000000")
mycanvas.pack()
movestep = movestep + 10
#if movestep < 450 : - NOT USED, FAILED ATTEMOT AT TRAPPING AND HALTING EXECUTION
window.after(10000,drawlines(movestep))

movestep = 150 # PARAMETER TO SEPARATE DRAWN LINES
mycanvas.create_oval(45, 45, 555, 555, fill='#cccccc') # CIRCLE TO DRAW LINES IN
mycanvas.pack()
window.after(10000,drawlines(movestep))

window.mainloop()


Подробнее здесь: https://stackoverflow.com/questions/786 ... as-display

Вернуться в «Python»