Python Tkinter将输出附加到列表中

时间:2015-04-16 17:27:03

标签: python-2.7 tkinter

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

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()

1 个答案:

答案 0 :(得分:2)

您可以使用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()