Я читал несколько похожих вопросов, но не думаю, что они ответят на мой.
У меня есть базовый c код для подсчета до 10 после нажатия кнопки «запустить» в GUI:
from tkinter import *
from time import sleep
def count_to_10():
for i in range(1,11):
sleep(0.5)
print(i)
counter_label.after(0, counter_label.config(text=i))
return
def GUI():
root = Tk()
run_button = Button(root, text="run", command=count_to_10)
run_button.pack()
global counter_label
counter_label = Label(root, text="counter")
counter_label.pack()
root.mainloop()
GUI()
Я ожидаю, что текст counter_label
будет изменяться с 1 до 10 после каждой итерации функции count_to_10
. Метка изменяется при возврате функции, не во время выполнения.
Вывод консоли:
1
2
3
4
5
6
7
8
9
10
Изменение метки:
После завершения функции метка изменяется только один раз на 10.
Тот же результат применяется к другим виджетам, таким как scrolledtext, Text,
и т. Д.
Как я могу изменить ярлык (или любой текстовый виджет) во время работы функции?
Спасибо за вашу помощь!
PS: Это похоже на то, что вывод консоли включен GUI.