Ваш код выполняет оба текста параллельно, поэтому вы получите следующий вывод:
text1 = 'Hi to you'
text2 = 'Hi to me'
OUTPUT:
HHii tt oo ymoeu
Ваш insert_slow ведет себя хорошо, но вам не нужно использовать after () снова, если вы попытаетесь запустить текст в двух отдельных строках.
И если так, то это должно быть в другом новом текстовом виджете.
Этот код работает, если вы хотите вывести текст на том же виджете:
from tkinter import *
def insert_slow(widget, string):
if len(string) > 0:
widget.insert(END, string[0])
if len(string) > 1:
widget.after(50, insert_slow, widget, string[1:])
root=Tk()
tx=Text(root)
tx.pack()
text_body = "this is a testing piece of text\n" \
"this is another testing piece of text"
insert_slow(tx, text_body)
root.mainloop()
если вы хотите, чтобы текстовые строки вставлялись медленно, вы можете использовать это также:
from tkinter import *
def insert_slow(widget, string):
if len(string) > 0:
widget.insert(END, string[0])
if len(string) > 1:
widget.after(50, insert_slow, widget, string[1:])
root=Tk()
tx1=Text(root)
tx2=Text(root)
tx1.pack()
tx2.pack()
text_body1 = "this is a testing piece of text\n"
text_body2 = "this is another testing piece of text"
insert_slow(tx1, text_body1)
insert_slow(tx2, text_body2)
root.mainloop()