Я пытаюсь заставить текст Tkinter Canvas длины x непрерывно прокручиваться по конечной области ‹x

Я пытаюсь заставить текст Tkinter Canvas длины x непрерывно прокручиваться по конечной области меньше x. У меня есть несколько объектов canvastext с разным текстом. Если я печатаю (новый текст), он показывает нужную мне прокрутку, но не отображается во время работы программы. Я пробовал с циклом while True:, и он вообще никогда не отображал холст. Любая помощь будет оценена по достоинству.

 text='really long text string that i want to scroll 15 characters at a time'

 canvastext=canvas.create_text(1,1,text=scrolltext(text),
 tag=(calmotag,booktag,'texttag'),width=20)

def scrolltext(text):
     textlength=15
     shorttext=tkinter.StringVar() 
     shorttext.set(text.get()[0:14])
     itemtext=text.get()
     if len(itemtext)>textlength:

         newindex=0
         endindex=newindex+14
         while endindex<len(itemtext)+2:
             oldtext=shorttext.get()
             oldindex=itemtext.index(oldtext)
             newindex=oldindex+1
             endindex=newindex+14
             newtext=itemtext[newindex:endindex]
             shorttext.set(newtext)
             root.update_idletasks()
             root.after(1000)

person Sean Gallagher    schedule 15.05.2016    source источник
comment
Не делайте анимацию с циклом while в tkinter. Это антипаттерн. См. stackoverflow.com/a/11505034/7432.   -  person Bryan Oakley    schedule 15.05.2016
comment
Спасибо Брайан за ссылку. Это работает отлично. Я пробовал подобное, но с циклом for или while, но не получал желаемого результата. Как только я удалил циклы и скорректировал код для изменения текста при каждом обратном вызове scrolltext(), он сработал.   -  person Sean Gallagher    schedule 18.05.2016