2016-10-04 47 views
0

私はUbuntuでいくつかのバックグラウンドプロセスを実行するQTプログラムテストを使用しています。QTでプロセス結果を表示するには?

私はプロセスの完了後にQprocess結果の詳細を表示する方法を知っています(QbyteArrayの使用)。

は、プロセスがバックグラウンドで実行されている間、私はQprocessの進行状況を表示するためにどのような方法があります。(つまり、メッセージボックスまたは他のそのような情報のサブウインドウに。)

+0

「QProcess」は、プロセスステータスに関する非同期信号を提供します。その出力を読むこともできます。 –

+0

これを実行するためのサンプルコードを共有できますか? –

+0

それはすべてドキュメントにあります! http://doc.qt.io/qt-5/qprocess.html –

答えて

1

あなたは非同期プロセス出力を読み取ることができます。そのためにはQProcess::readyReadStandardOutput()またはQProcess::readyReadStandardError()信号をあなたのスロットに接続する必要があります。

QString program = "ping"; 
QStringList arguments; 
arguments << "google.com"; 
myProcess = new QProcess(parent); 
connect(myProcess, SIGNAL(readyReadStandardOutput()), this, SLOT(readyR())); 
myProcess->start(program, arguments); 

スロットには、スタンドアロンの出力からプロセスによって書き込まれたデータを読み取り、必要な処理を行うことができます。

void YourClass::readyR() 
{ 
    qDebug()<<myProcess->readAllStandardOutput(); 
} 
関連する問題