私はqt開発の初心者です。QProcessの出力をリアルタイムでtextBrowserに転送したいと考えています。私は簡単なエコーコマンドを実行することから始めましたが、プログラムの出力は表示されません。 何が間違っていますか?QProcessのリアルタイム表示をtextBrowserに表示
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);}
P.S.私はLinuxマシンです。
EDIT: 私はまだtextBrowserで出力を取得できません。
Qプロセスのパラメータを変更し、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();
あなたは、良い例のコード –
追加サンプルコードを投稿することが役立つことを願ってくださいすることができます。 – Kunal
結果をtextBrowserに表示したいのですが、このコードはqtの端末自体に結果を表示します。 –