2016-04-08 6 views
0

私はプロセスを呼び出してこのプログラムが終了するまで待っています。Python - 呼び出しを処理して待ちます

このように動作するはずです。

メインプログラムとセカンダリプログラム。

メインプログラムは、QPushButtonをクリックしてセカンダリプログラムを開く必要があります。

次に、セカンダリプログラムが表示され、正常に使用できます。

これを閉じると(ウィンドウが終了するとプロセスが強制終了される)、メインプログラムも終了するはずです。

モジュール「サブプロセス」がありますが、使用方法はわかりません。ドキュメントはちょっとしたものです。

助けを借りて

+0

なぜ単に秒1を開いた直後に最初のプログラムを閉じていませんか? 2番目のプログラムが実行されている間に最初のプログラムと実際にやりとりする必要がありますか?そうであれば、最も簡単な解決策は、第2のプロセスが完了するのを待つ間に第1のプロセスをブロックするので、これは事を複雑にする。 – ekhumoro

+0

@ekhumoroこれもうまくいきます。最初のプログラムは単に実行者です。私の最初のプログラムが2番目のプログラムを開始した後、最初のプログラムは閉じられます。オープンでもクローズでも、何の役割も果たさない。あなたはどうしますか? – freedome97

答えて

0

これを試すことができます。

import subprocess 
    subprocess.call('ping 192.168.132.133') 

Python 3.Xでは、優先されるsubprocess.run()を使用します。 run()が機能しない、より高度なケースが必要な場合は、popen()を直接使用できます。

0

あなたが最初のプログラムの実行を継続する必要がない場合は、あなただけの2番目のプログラムを開いた後、すぐにそれを閉じることができますが:

if QtCore.QProcess.startDetached('prog2', ['arg1', 'arg2']): 
     QtWidgets.qApp.quit() 
    else: 
     print('ERROR: could not start prog2')