2010-05-10 121 views

回答

1

有一個例子如何做到這一點here

1

將另一個函數推入單獨的線程。只要你的主線程運行任何代碼,GUI就會被凍結。這對短代碼片段不是問題,但在你的情況下顯然是一個問題。

另請參閱PyGTK FAQ關於在PyGTK程序中使用線程的說明。

+0

感謝您的回覆! – 2010-05-10 19:42:09

0

如果你的函數運行在許多不需要太長時間的迭代中,那麼你不一定需要混淆不同的線程。在長時間計算過程中,您還可以使GUI自行更新:

def long_function(some_args): 
    while task_is_not_finished(): 
     do_some_stuff_that_doesnt_take_too_long() 
     progress_bar.pulse() 
     while gtk.events_pending(): 
      gtk.main_iteration()