2012-05-17 35 views
0

這是一個概念性問題。從回調類外部向GUI傳遞更新

我正在學習Python。我構建了一個GUI和一個回調類來處理事件。我想讓回調類只處理事件,並在另一個.py文件中調用實際完成所有繁重工作的方法。

但是,我在我的GUI和一個詳細信息窗口中顯示進度條,該窗口顯示進程正在執行的所有工作。

如果我把所有的回調類中重工作方法,我可以很容易地更新進度條和詳細信息窗口,然後調用:

while gtk.events_pending(): 
    gtk.main_iteration() 

爲了做更多的工作之前更新GUI。

但是,如果我的重工作方法(它也更新了GUI)被放置在它自己的.py文件/類中,我該怎麼做?

這是我的例子:

這是我希望把我的回調類以外的方法:

#Some work before here 

for root, subdirs, files in os.walk(directoryname, True): 
    for fileName in files: 
     totalFileCount = totalFileCount + 1 

self.textBuffer.insert(self.textBuffer.get_end_iter(), 
         "Number of files and subdirs found for " 
         + directoryname + ": " 
         + str(totalFileCount) + "\n") 
self.textViewDetail.scroll_to_iter(self.textBuffer.get_end_iter(), 
            0, 
            False, 
            0, 
            0) 
self.walkProgress = progressbar.progressBar(0, totalFileCount) 

while gtk.events_pending(): 
    gtk.main_iteration() 

#some more work after here 

我認爲,這是對類如何假設在我的理解脫節工作,而我對文檔的閱讀並沒有讓我走得更遠。

謝謝。

回答