如何在运行其他功能时让Progressbar“脉冲”?
答案 0 :(得分:1)
将另一个函数推送到一个单独的线程中。只要您的主线程运行任何代码,GUI就会被冻结。这对于短代码片段来说不是问题,但在你的情况下显然是一个问题。
另请阅读PyGTK FAQ关于在PyGTK程序中使用线程的内容。
答案 1 :(得分:1)
有一个如何执行此操作的示例here。
答案 2 :(得分: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()