私はqt開発の初心者で、QProcessの出力をリアルタイムでtextBrowserに転送したいと考えています。簡単な echo コマンドを実行することから始めましたが、プログラムの出力が表示されません。私は何を間違っていますか????
QProcess p;
p.start("echo hye");
QByteArray byteArray = p.readAllStandardOutput();
QStringList strLines = QString(byteArray).split("\n");
QString line= p.readAllStandardOutput();
if(p.state()==QProcess::NotRunning)
ui->textBrowser->append("not running");
foreach (QString line, strLines){
ui->textBrowser->append(line);}
PS私はLinuxマシンを使用しています。
編集: textBrowser で出力を取得できません。
Qprocess パラメーターを変更し、waitForStarted() と waitForReadyRead() の両方を試して、プロセスが時間内に開始され、結果が利用可能になるようにしました。
範囲外になったときにプロセスが終了しないように、waitForFinished() を追加しました。
QProcess p;
p.start("echo", QStringList() << "hye");
p.waitForStarted();
QByteArray byteArray = p.readAllStandardOutput();
QStringList strLines = QString(byteArray).split("\n");
QString line= p.readAllStandardOutput();
if(p.state()==QProcess::NotRunning)
ui->textBrowser->append("not running");
ui->textBrowser->append(line);
p.waitForFinished();