Home > python, Tkinter > Tkinter: progressbar

Tkinter: progressbar

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
Categorie:python, Tkinter
  1. Non c'è ancora nessun commento.
  1. No trackbacks yet.

Lascia un commento

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...

%d blogger cliccano Mi Piace per questo: