Python Tkinter 将输出附加到列表

Python Tkinter append the output to a list

我想在 tkinter 上的列表上显示 while true 循环的输出,这将更新列表末尾的输出。在下面的代码中,我列出了从 1 到 100 的数字,但是我怎样才能让它一次更新一个数字以实现无限的 while true 循环?

from Tkinter import *

master = Tk()

scrollbar = Scrollbar(master)
scrollbar.pack(side=RIGHT, fill=Y)

listbox = Listbox(master, yscrollcommand=scrollbar.set)
i = 0
while i < 100:
    i = i + 1
    listbox.insert(END, str(i))
listbox.pack(side=LEFT, fill=BOTH)

scrollbar.config(command=listbox.yview)

mainloop()

您可以使用主循环作为循环,并使用 after 方法每秒调用一个函数。这是一个最小的例子:

from Tkinter import *

COUNT = 0
def add_one():
    global COUNT
    COUNT += 1
    listbox.insert(END, str(COUNT))
    master.after(1000, add_one)

master = Tk()

scrollbar = Scrollbar(master)
scrollbar.pack(side=RIGHT, fill=Y)

listbox = Listbox(master, yscrollcommand=scrollbar.set)

add_one()
listbox.pack(side=LEFT, fill=BOTH)

scrollbar.config(command=listbox.yview)

mainloop()