2010-05-10 4 views

ответ

1

Нажмите эту другую функцию в отдельную нить. Пока ваш основной поток запускает какой-либо код, графический интерфейс замораживается. Это не проблема для коротких фрагментов кода, но, очевидно, проблема в вашем случае.

Также читайте, что PyGTK FAQ должен сказать об использовании потоков в программе PyGTK.

+0

Спасибо за ответ! –

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