关于 tkinter 滚动文本

About tkinter scrolledtext

我在使用Tkinter时遇到如下问题:

下面的简单代码是用来测试scrolledtext widget的。我需要意识到的是,我希望结果连续(递增?)显示在 scrolledtext 小部件中,在那里我可以清楚地知道正在处理哪个步骤。但不要等待整个迭代结束。当迭代总数较小(小于10^5)时还可以,但如果数量很大(例如10^8或10^10),则需要等待很长时间。谁能给我一些建议?

# -*- coding: utf-8 -*-

import tkinter as tk


win = tk.Tk()

text_area = tk.scrolledtext.ScrolledText(win)

for i in range(10000000):
    text_area.insert(tk.END, "step " + str(i) + "\n")

text_area.see(tk.END)
text_area.pack()


win.mainloop()

您可以使用 .after():

import tkinter as tk
from tkinter import scrolledtext

win = tk.Tk()
def add_to_frame(i):
    if i<10000000:
        text_area.insert(tk.END, "step " + str(i) + "\n")
        text_area.see(tk.END)
        win.after(1,add_to_frame,i+1)
text_area = scrolledtext.ScrolledText(win)


text_area.see(tk.END)
text_area.pack()
i=0
win.after(1,add_to_frame,i)

win.mainloop()