【发布时间】:2021-05-01 13:21:38
【问题描述】:
我有一个包含多个页面的 GUI,我在父类 (APP) 下定义了所有功能。我正在使用threading.Timer 来更新当前函数的进度。这个函数也在父类下定义(我们称之为update_time())。
我想在每次线程Timer 更新时更新 GUI 的第三页上的进度条。如何从函数update_time() 访问 GUI 第 3 页上的进度条,以便在每次线程计时器更新时更新进度条?
def update_time(self):
timer = threading.Timer(self.update_interval, self.update_time)
timer.start()
self.current_count += 1
current_percentage = self.current_count / self.total_count
current_percentage = current_percentage if current_percentage <= 1 else 1
# This is the progress bar that would reside on PageThree
PageThree.progress['value'] = round(current_percentage, 3) * 100
PageThree.style.configure('text.Horizontal.TProgressbar', text='{:.1%}'.format(current_percentage))
PageThree.progress 显然不起作用,但我正在寻找类似的想法,即在 PageThree 类中调用进度条并将其更新为当前百分比。
【问题讨论】:
-
每次调用时都需要将
PageThree传入update_time(),或者将其传入这个类的__init__(),这样self.PageThree.progress...才会起作用。 -
如果您想要一个连贯的答案,您将需要在您的问题中添加更多代码,以便我们对您的应用设计有一个整体的了解。
-
请创建一个minimal reproducible example 来复制您遇到的问题,但代码行数尽可能少。
标签: python multithreading tkinter progress-bar