Tkinter-带有标签的故障跟踪进度

时间:2018-07-13 13:43:23

标签: python python-3.x tkinter

我正在python中使用tkinter GUI软件包,并希望跟踪遍历列表并对列表中的每个项目执行操作的过程的进度。我想在显示“已处理100的项目1”的标签中跟踪进度。标签绑定到字符串变量。这是我最初尝试的:

def runLoop(self):
    for site in self.sitelist:
        #Do stuff
        self.x+=1
        self.outLabelStrVar="Item " + str(self.x) + " of " + str(len(self.sitelist)) + " processed."

但是,这当然不是实时更新的,因为像this one这样的线程中所建议的,我从未返回过tkinter窗口mainloop。

所以我更新了代码以使函数递归:

def runLoop(self, item=None):
     if item is None:
         for site in self.sitelist:
             self.after(1,runLoop(site))
     else:
         self.x+=1
         self.outLabelStrVar="Item " + str(self.x) + " of " + str(len(self.sitelist)) + " processed."

我认为随着for循环的每次迭代都会返回到主tkinter循环。但这也不能实时更新输出标签。

我误会什么?

0 个答案:

没有答案