Qprocess外部プログラムの起動

877 ワード

1.渋滞運転
QProcess process;
process.execute( "sub.exe", params ); 
process.waitForFinished();

executeメソッドは、プログラムが終了するまでプログラムを塞ぐように実行します.
 
2.非同期運転
process.start( "sub.exe", params );
startメソッドは、hdbwriteコマンドがシステム環境変数にあるプロセスを個別に開始します. 
 
3.プログラムパス
システム環境変数に構成したくない個別のウィジェットを実行する場合があります.どうすればいいですか?
プログラムディレクトリ:
| -- test
|      |
|      | -- main.exe 
|      | -- subdir 
|               | -- sub.exe
|

 
方法1:
subdirの内容をすべてtestホームの下に置いて、直接以下のコードで起動することができます.
process.start( "sub.exe");
 
方法2:
すべてのプログラムは1つのカタログに置いてあり、強迫症の子供靴は受け入れられない.プログラム作業ディレクトリ起動プログラムを設定できます.
process.setWorkingDirectory( "./subdir" );
process.start( QApplication::applicationDirPath() + "subdir/sub.exe" );