Как скрыть окно GTK в Python перед вызовом или os.system

Итак, я использую приложение Python / GTK, которое после отображения помощника скрывает окно помощника и запускает внешнее приложение. Проблема в том, что window.hide() не работает, если после команды есть вызов приложения, использующий os.system() или call(). Когда вызов завершен, окно, кажется, зависает, и оно не исчезает, пока не будут выполнены все вызовы. Итак ... что можно сделать?

0
задан 25 June 2012 в 00:53

2 ответа

В своих приложениях я склонен заменять os.system() и subprocess.call() на subprocess.Popen (см. https://stackoverflow.com/a/636570/2372604 ).

0
ответ дан 25 June 2012 в 00:53

Через некоторое время, пытаясь найти возможные решения, я нашел этот простой ответ, который ждет GTK, пока он не выполнит все свои рабочие задачи. Вы можете подумать, что это замедляет работу приложения, но разница почти отсутствует.

Этот обходной путь может использоваться с любой версией Python. Он работает с PyGTK и с GTK + 3 (с GTK + 3, изменить gtk на Gtk ...: P)

while gtk.events_pending():
    gtk.main_iteration()

Просто добавьте это перед кодом, который вызывает проблему и готово! :)

0
ответ дан 25 June 2012 в 00:53

Другие вопросы по тегам:

Похожие вопросы: