Я новичок в разработке qt, и я хочу передать вывод QProcess в текстовый браузер в режиме реального времени. Я начал с выполнения простой команды эха, но вывод программы не отображается. Что я делаю неправильно????
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-машине.
РЕДАКТИРОВАТЬ: я все еще не могу получить вывод в 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();