Кто в питон + гтк рубит?

Сижу, от делать нечего, перевожу свой скриптовый зоопарк на питона. И вот возник вопрос.
Итак, гтк. Допустим есть форма, с одной кнопой. Нажимаю, скрипт допустим, считает мд5 у файлов.
class vista:
   ..............
  .............
        
    def test(self, *args):
        from hashlib import md5
        print md5(open('/mnt/storage/pub/iso/пять_гигов_порнухи.iso', 'rb').read()).hexdigest()
    def windows(self):
      .............
          .................
        w['button_yes'].connect("clicked", self.test)
Значит, пока он там считает, main_loop() замирает… И я не могу в это время допустим переопределить свойство кнопки, или записать что-либо в статусбар…
Вот и вопрос - как вообще (ну может кроме потоков) вызывать объект, чтоб не “замораживало” работу самого интерфейса? то-есть как запустить обсчёт, и одновременно иметь возможность изменить состояние нескольким элементам (скрыть, деактивировать, написать хелло ворд)?
В вашем случае нужный эффект даст только новый поток. Но если главный поток просто застрял в “долгом” цикле то Gui оживить можно так:

while gtk.events_pending():
    gtk.main_iteration(False)
Описание решения
Вот кто бы еще рассказал об этом решении разработчикам gajim… А то эти “замирания” интерфейса замучали.
Похоже сработает. Очень благодарен за подсказку.
 
Зарегистрироваться или войдите чтобы оставить сообщение.