GTK Progressbar脉冲python

时间:2010-05-10 18:41:28

标签: python gtk

如何在运行其他功能时让Progressbar“脉冲”?

3 个答案:

答案 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()