0

QProgressDialogを使用して、外部実行可能ファイルを実行するステップを含む、長時間実行されている操作のステータスを表示しています。QProcess :: execute()メソッドを使用して外部実行可能ファイルを実行します。QprogressDialogは、QProcess :: execute()メソッドに到達するまでラベルテキストを正常に更新し、その後は状態を更新しません。

実行可能ファイルの実行後に状態を更新する方法。

4

1 に答える 1

2

QProcess::execute()ブロッキング メソッドです。生成されたプロセスが終了するまで、呼び出し元のスレッドをブロックします。このメソッドをメイン スレッドから呼び出すと、メソッドが戻るまで UI イベントは処理されません。

これを回避するには、QProcess(静的メソッドを使用するのではなく) のインスタンスを作成し、外部プロセスの実行が終了した後に発生する操作の一部を継続するスロットを作成し、それをQProcess::finished(int, QProcess::ExitStatus)シグナルに接続します。

于 2010-08-06T20:49:53.163 に答える