Tkinter-循环更新列表框

问题描述 投票:1回答:1

我是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

python loops tkinter
1个回答
1
投票

您无法以惯用的相同程序方式对tkinter应用程序进行编程,因为其中的所有内容都必须在其mainloop()运行时发生。 Tkinter是一个用于编写GUI的事件驱动框架。

这是使用通用窗口小部件方法after()的操作方法,它必须安排对在短暂延迟后进行插入的方法的回调(如果after()尚未建立,则对其自身进行另一个调用”尚未达到)。

LIMIT
© www.soinside.com 2019 - 2024. All rights reserved.