Tkinter: progressbar
7 Aprile 2014
import ttk import time class ProgressBar(object): def __init__(self, master=None): self.var = 0 if master is None: self.root = tk.Tk() else: self.root = master self.root.title('wait...') def build_gui(self): self.frame = tk.Frame(self.root) self.frame.pack() self.pb = ttk.Progressbar(self.frame, mode="determinate", variable=self.var) self.pb.pack() def start(self): self.root.mainloop() class Controller(object): def __init__(self): # self.app = ProgressBar(master=tk.Toplevel()) # CoreFrame as parent self.app = ProgressBar(master=None) # progress bar on the fly self.app.build_gui() ## Do stuff ## def call_progressbar(self, newlimit=100): '''Call progressbar using newlimit as maximum argument''' self.app.pb.configure(maximum=newlimit) for i in range(newlimit): time.sleep(.005) self.app.pb.step() self.app.pb.update() self.app.pb.stop() self.app.root.destroy() def run(self): self.app.start() if __name__ == '__main__': c = Controller() c.call_progressbar(200) c.run() # Only if master is None and we need a mainloop
Commenti recenti