Форум сайта python.su
0
Здравствуйте. Как постепенно добавлять текст в виджет? Пример:
from tkinter import tk import time root = tk.Tk() label = tk.Label(root, text='Stroka 1') label.grid() time.sleep(1) label = tk.Label(root, text='Stroka 2') label.grid() time.sleep(1) root.mainloop()
Офлайн
568
regnor
time.sleep(1) останавливает выполнение потока, в котором вызывается. У вас один поток в программе, поэтому на момент сна ничего вообще происходить не может. Запустите код, который будет засыпать в другом потоке.
Офлайн
294
regnorвы должны понимать что делает на самом деле root.mainloop()
Я понимаю, что на самом деле он добавляет через каждую секунду строки, но показывает только когда доходит до root.mainloop()
from tkinter import * import time def add_char(): global count count +=1 if count <= len(text): label['text']=text[0:count] root.after(1000, add_char) count=0 text='Some text' root = Tk() label = Label(root, text='') label.grid() root.after(1000, add_char) root.mainloop()
[code python][/code]
Отредактировано PEHDOM (Июль 23, 2019 20:32:22)
Офлайн