当前位置: 首页 > 知识库问答 >
问题:

从父类下定义的函数更新多页GUI中的tkinter进度条

壤驷鸿祯
2023-03-14

我有一个包含多个页面的GUI,我在父类(APP)下定义了所有函数。我正在使用线程。定时器用于更新当前功能的进度。这个函数也是在父类下定义的(我们称它为update\u time())。

我在GUI的第三页上有一个progressbar,每次线程计时器更新时我都要更新它。如何从函数update\u time()访问GUI第3页上的progressbar,以便在每次线程计时器更新时更新progressbar?

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中调用进度条,并将其更新为当前百分比。


共有1个答案

子车征
2023-03-14

最后,我将Progressbar变量设置为全局DoubleVar(),并在函数调用中更新了该变量。说明:这不是函数代码,只是举个例子给出大概的思路

class MainPage(tk.Tk)

    def __init__(self, *args, **kwargs):
        tk.Tk.__init__(self, *args, **kwargs)
      
    def update_time(self, a_num):
        progress = a_num
        PageThree.update_progress(self, progress)


class PageThree(tk.Frame)

      def update_progress(self, val):
          treatment_progress_var.set(val)

      def __init__(self, parent, controller):
          tk.Frame.__init__(self, parent)

          global progress_var
          progress_var = DoubleVar()


           ttk.Progressbar(self, orient=HORIZONTAL, 
           textvariable=treatment_progress_txt, 
           mode='determinate', variable=treatment_progress_var)

这将允许在每次调用update_time()时更新Progressbar

 类似资料:
  • 我试图更新数据在matplotlib imshow窗口内的Tkinter gui,我的代码示例如下: 如您所见,我使用imshow()加载图像,然后尝试使用set_data()更新图像的数据,然后希望使用root.update()更新gui的根窗口。执行时,打印“旋转按钮按下......”行被执行,但其余行似乎没有执行。我需要如何将图像句柄传递给旋转函数,还是返回旋转的图像?

  • 我有一个简单的TKinter GUI,它有一个文本输入框和一个按钮。我想输入文本,点击按钮,让我的程序打印文本。GUI工作正常,除了单击文本输入框并键入时,在调整窗口大小或单击按钮之前,我看不到光标或文本。单击按钮时,文本将显示在输入框中并返回。当我输入文本时,GUI没有更新。我正在OSX10.10上运行Python 3.4。任何想法都欢迎。 下面是代码:

  • 我有一个通过互联网下载文件的应用程序。应用程序开始下载,但不知道如何显示进度条。以下适配器类: 以下是下载文件的类: 现在我卡住了如何更新进度条!任何想法

  • 我有一个自定义的层次分类法'地区'和我在3个级别上创建术语:国家 到目前为止,我添加了大约12k个术语,分类法管理页面变得非常缓慢,因为WP将所有现有分类法拉入父下拉列表。现在我试图将这个下拉菜单的深度限制为两个级别-仅限国家和州。一个城市永远不会成为另一个城市的家长,所以我很乐意这样做。 我试着跟着https://wordpress.stackexchange.com/questions/106

  • 问题内容: from Tkinter import * import time #Tkinter stuff 我正在尝试创建一个配方显示,以在Tkinter GUI的屏幕上显示步骤,说明,重量和其他变量。 但是,我不知道如何根据配方的每个新步骤来更新GUI以进行更改,因为必须根据用户输入(从服务器获取)动态更新内容。如何根据步骤的更改实现GUI其他元素的更新? 问题答案: 您可以在(例如)1000

  • 嗨,我正在尝试创建一个gui,它将在每次温度传感器发回信号并更新jtag值时更新温度。现在我可以通过按下更新按钮来更新gui标签,但是我希望它在不按下“更新按钮”的情况下自动更新。我尝试了很多方法,包括和,并使用不同类型的摆动计时器,但仍然无法让它工作。有人能在这里帮我吗?谢谢我会在底部发布我的代码。 GUI类: 串行读卡器类: 这是我的gui的图像, http://i692.photobucke