12,964
回編集
(→概要) |
(→概要) |
||
1行目: | 1行目: | ||
== 概要 == | == 概要 == | ||
QProcessクラスは、外部プロセスを起動して、それらと通信するためのQtのクラスである。 | QProcessクラスは、外部プロセスを起動して、それらと通信するためのQtのクラスである。<br> | ||
外部プログラムの実行、入出力の制御、プロセスの状態監視等を行うことができる。 | 外部プログラムの実行、入出力の制御、プロセスの状態監視等を行うことができる。<br> | ||
<br> | |||
QProcessクラスはQIODeviceクラスを継承しているため、標準的なQt入出力機能を利用できる。 | QProcessクラスはQIODeviceクラスを継承しているため、標準的なQt入出力機能を利用できる。<br> | ||
これにより、readメソッドやwriteメソッド等の操作が可能であり、外部プロセスとのデータのやり取りが容易になる。 | これにより、readメソッドやwriteメソッド等の操作が可能であり、外部プロセスとのデータのやり取りが容易になる。<br> | ||
<br> | |||
プロセスの起動方法は、startメソッドを使用する。 | プロセスの起動方法は、startメソッドを使用する。<br> | ||
<syntaxhighlight lang="c++"> | <syntaxhighlight lang="c++"> | ||
QProcess process; | QProcess process; | ||
12行目: | 12行目: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
<br> | <br> | ||
プロセスの実行状態は、様々なシグナルを通じて監視することができる。 | プロセスの実行状態は、様々なシグナルを通じて監視することができる。<br> | ||
主要なシグナルとしては、プロセスが開始された時のstartedメソッド、終了した時のfinishedメソッド、エラーが発生した時のerrorOccurredメソッド等がある。 | 主要なシグナルとしては、プロセスが開始された時のstartedメソッド、終了した時のfinishedメソッド、エラーが発生した時のerrorOccurredメソッド等がある。<br> | ||
<br> | |||
標準入出力とエラー出力の制御も可能である。 | 標準入出力とエラー出力の制御も可能である。<br> | ||
setStandardOutputProcessメソッドを使用して、あるプロセスの標準出力を別のプロセスの標準入力にパイプすることができる。 | setStandardOutputProcessメソッドを使用して、あるプロセスの標準出力を別のプロセスの標準入力にパイプすることができる。<br> | ||
また、setProcessChannelModeメソッドを使用して、標準出力とエラー出力の扱い方を制御することも可能である。 | また、setProcessChannelModeメソッドを使用して、標準出力とエラー出力の扱い方を制御することも可能である。<br> | ||
<br> | |||
エラーハンドリングでは、<code>error</code>メソッドを使用してエラーの種類を確認することができる。<br> | |||
一般的なエラーとしては、プロセスが見つからない、アクセス権限がない、タイムアウト等がある。 | 一般的なエラーとしては、プロセスが見つからない、アクセス権限がない、タイムアウト等がある。<br> | ||
<br> | |||
プロセスの終了制御も柔軟であり、通常の終了要求である<code>terminate</code>メソッドや強制終了の<code>kill</code>メソッドが用意されている。<br> | |||
また、<code>waitForFinished</code>メソッドを使用して、プロセスの終了を待機することもできる。<br> | |||
<br> | |||
環境変数の制御も可能で、<code>setEnvironment</code>メソッドや<code>setWorkingDirectory</code>メソッドを使用して、プロセスの実行環境をカスタマイズできる。<br> | |||
<br><br> | <br><br> | ||