ciao!
o almeno penso che il problema sia quello.
nel senso che questo è il mio codice:
codice:
void MainWindow::execCmd(QString cmd) {
ui->txtRes->clear();
ui->txtUrl->setEnabled(false);
ui->btnDownload->setEnabled(false);
process = new QProcess();
if (process) {
process->setEnvironment(QProcess::systemEnvironment());
process->setProcessChannelMode(QProcess::MergedChannels);
process->start(cmd);
process->waitForStarted();
connect(process, &QProcess::readyReadStandardOutput, this, &MainWindow::readOutput);
connect(process, &QProcess::readyReadStandardError, this, &MainWindow::readError);
}
}
void MainWindow::processFinished(int code, QProcess::ExitStatus status) {
process->kill();
qDebug() << "OK";
}
void MainWindow::readOutput() {
QProcess *process = dynamic_cast<QProcess*>(sender());
if (process) {
ui->txtRes->appendPlainText(process->readAllStandardOutput());
connect(process, SIGNAL(finished(int, QProcess::ExitStatus)), this, SLOT(processFinished(int, QProcess::ExitStatus)));
}
}
void MainWindow::readError() {
QProcess *process = dynamic_cast<QProcess*>(sender());
if (process) {
QPalette p = ui->txtRes->palette();
p.setColor(QPalette::Text, Qt::red);
ui->txtRes->setPalette(p);
ui->txtRes->appendPlainText(process->readAllStandardError());
}
}
quell'OK mi compare in console una decina di volte.
idee??