Ошибки новичков в анимации 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
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Discord py не отправляет сообщения при вызове из метода after из voice.play(... after=...)
    Anonymous » » в форуме Python
    0 Ответы
    31 Просмотры
    Последнее сообщение Anonymous
  • HTML5 Canvas: как рисовать на Canvas с сервера Java или C++?
    Anonymous » » в форуме JAVA
    0 Ответы
    52 Просмотры
    Последнее сообщение Anonymous
  • HTML5 Canvas: как рисовать на Canvas с сервера Java или C++?
    Anonymous » » в форуме Html
    0 Ответы
    42 Просмотры
    Последнее сообщение Anonymous
  • HTML5 Canvas: как рисовать на Canvas с сервера Java или C++?
    Anonymous » » в форуме C++
    0 Ответы
    52 Просмотры
    Последнее сообщение Anonymous
  • HTML5 Canvas: как рисовать на Canvas с сервера Java или C++? [закрыто]
    Anonymous » » в форуме JAVA
    0 Ответы
    37 Просмотры
    Последнее сообщение Anonymous

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