【发布时间】:2020-04-08 03:52:16
【问题描述】:
我是 Tkinter 的新手,我遇到了这个问题:
我想在循环中使用新值更新我的ListBox,以便在循环期间将值添加到其中,而不仅仅是在结束时。
这是我的问题的示例代码:
import time
import tkinter as tk
class mainApp(tk.Tk):
def __init__(self, *args, **kwargs):
tk.Tk.__init__(self, *args, **kwargs)
listbox = tk.Listbox(self)
button3 = tk.Button(self, text="addValues",
command=lambda : self.addValues(listbox))
button3.pack()
def addValues(self,listbox):
for i in range(10):
time.sleep(1)
listbox.insert(tk.END, str(i))
listbox.pack()
app = mainApp("test")
app.mainloop()
在这里,我希望每次向ListBox 添加值时更新Frame。
【问题讨论】:
-
1.
listbox.pack()与向listbox插入数据无关。将其移至__init__。 2. 您使用的是OOP表示法,因此您必须使用self.listbox。 3. 不需要lambda,改为command=self.addValues。 4.使用time.sleep(...会屏蔽tkinter.mainloop(),不要使用。