How to update a progress bar in a loop?

后端 未结 1 1558
天命终不由人
天命终不由人 2021-01-18 05:44

What is the easy method to update Tkinter progress bar in a loop?

I need a solution without much mess, so I can easily implement it in my script, since it\'s already

相关标签:
1条回答
  • 2021-01-18 05:59

    Here's a quick example of continuously updating a ttk progressbar. You probably don't want to put sleep in a GUI. This is just to slow the updating down so you can see it change.

    from Tkinter import *
    import ttk
    import time
    
    MAX = 30
    
    root = Tk()
    root.geometry('{}x{}'.format(400, 100))
    progress_var = DoubleVar() #here you have ints but when calc. %'s usually floats
    theLabel = Label(root, text="Sample text to show")
    theLabel.pack()
    progressbar = ttk.Progressbar(root, variable=progress_var, maximum=MAX)
    progressbar.pack(fill=X, expand=1)
    
    
    def loop_function():
    
        k = 0
        while k <= MAX:
        ### some work to be done
            progress_var.set(k)
            k += 1
            time.sleep(0.02)
            root.update_idletasks()
        root.after(100, loop_function)
    
    loop_function()
    root.mainloop()
    
    0 讨论(0)
提交回复
热议问题