Thursday, July 31, 2008

PyGtk ProgressBar

在upload、dump、erase binary file到Eco上,我們會想知道現在進行的進度。PyGtk中有一個ProgressBar可以拿來使用,Upload的時候,會知道現在透過rs232已經送出了多少bytes,並且也知道整個要上傳binary file的總bytes。

class ProgressBar:
    def __init__(self,gladefile,bar_name):
        self.gladefile = gladefile
        self.dialogboxname = "progressbar_dialog1"
        self.bar_name = bar_name

    def run(self):
        self.wTree = gtk.glade.XML(self.gladefile,self.dialogboxname)
        self.progressbar = self.wTree.get_widget(self.dialogboxname)
        self.bar = self.wTree.get_widget("progressbar1")
        self.bar.set_text(self.bar_name)

    def close(self):
        self.progressbar.destroy()


    def set_fraction(self,val):
        if val <= 1.0 and val >= 0.0:
            self.bar.set_fraction(val)
        else:
            self.bar.set_fraction(1.0)
        #http://faq.pygtk.org/index.py?req=show&file=faq23.020.htp
        while gtk.events_pending():
            gtk.main_iteration()


因此create出來的bar object,只要使用set_fraction傳入目前已完成百分比。

HEMiDEMi Technorati Del.icio.us MyShare個人書籤 Yahoo

0 意見: