Como ocultar uma janela do GTK no Python antes de chamar ou os.system

0

Então, estou depeloping um aplicativo Python / GTK que, depois de mostrar um assistente, oculta a janela do assistente e executa um aplicativo externo. O problema é que window.hide() não funciona se, após o comando, houver uma chamada de aplicativo usando os.system() ou call() . Quando a chamada é feita, a janela parece travar e não desaparece até que todas as chamadas sejam concluídas. Então ... o que pode ser feito?

    
por espectalll 24.06.2012 / 22:53

2 respostas

1

Após algum tempo pesquisando as possíveis soluções, encontrei essa resposta simples, que aguarda o GTK até que ele conclua todas as suas tarefas. Você pode achar que isso torna o aplicativo mais lento, mas a diferença é quase inexistente.

Esta solução alternativa pode ser usada com qualquer versão do Python. Ele funciona com o PyGTK e com o GTK + 3 (com o GTK + 3, altere gtk por Gtk ...: P)

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

Basta adicionar isso antes do código que causa o problema ... e pronto! :)

    
por espectalll 24.06.2012 / 22:53
0

Nos meus aplicativos, costumo substituir os.system() e subprocess.call() por subprocess.Popen (consulte link ).

    
por ilent2 19.07.2015 / 05:22