Я пытаюсь заставить текст 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)
while
в tkinter. Это антипаттерн. См. stackoverflow.com/a/11505034/7432. - person Bryan Oakley   schedule 15.05.2016