我是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()
在这里我希望每次向Frame
添加值时都更新ListBox
。
您无法以惯用的相同程序方式对tkinter应用程序进行编程,因为其中的所有内容都必须在其mainloop()
运行时发生。 Tkinter是一个用于编写GUI的事件驱动框架。
这是使用通用窗口小部件方法after()
的操作方法,它必须安排对在短暂延迟后进行插入的方法的回调(如果after()
尚未建立,则对其自身进行另一个调用”尚未达到)。
LIMIT