Я пытаюсь распечатать выход процесса загрузки веб-сайта с помощью wget
в виджетах (textEdit), но он ничего не печатает, однако в терминале он работает.Qt - Как перенаправить QProcess 'stdout в TextEdit
Пример
Команда:
wget --no-clobber --convert-links --random-wait -r -p -E -e robots=off -U mozilla http://site/path`
Выход:
Resolving ******... 54.239.26.173
Connecting to *****|54.239.26.173|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [text/html]
Saving to: ‘/index.html’
...
Мой код:
void downloadWebsite::on_pushButton_clicked()
{
input = ui->lineEdit->text();
if(input.isEmpty())
QMessageBox::information(this,"Error","Not an url/webpage !");
else{
QProcess *getDownload = new QProcess(this);
getDownload->setProcessChannelMode(QProcess::MergedChannels); //it prints everything , even errors
QString command = "wget --no-clobber --convert-links --random-wait -r -p -E -e robots=off -U mozilla " + input;
getDownload->start("sh",QStringList() << "-c" <<"cd ;"+command);
QByteArray outputLog = getDownload->readAllStandardOutput();
getDownload->waitForFinished();
getDownload->close();
QString outputToString(outputLog);
ui->textEdit->setText(outputToString);
}
}
Что утра Я делаю неправильно?
спасибо.
Привет, это по-прежнему печати ничего. – Lazai
Мне удалось заставить его работать, по-видимому, проблема заключалась в том, что у меня была getDownload-> waitForFinished(); и getDownload-> close() ;. Это отменило мой вывод. Спасибо. – Lazai