connect(&mProcess, SIGNAL(readyReadStandardOutput()), this, SLOT(redFromStdOut())); connect(&mProcess, SIGNAL(readyReadStandardError()), this, SLOT(redFromStdErr())); connect(&mProcess, SIGNAL(error(QProcess::ProcessError)), this, SLOT(processError(QProcess::ProcessError))); connect(&mProcess, SIGNAL(finished(int,QProcess::ExitStatus)), this, SLOT(processFinished(int,QProcess::ExitStatus))); void FloodForecast::redFromStdOut() { ui.textBrowse->append(mProcess.readAllStandardOutput()); } void FloodForecast::redFromStdErr() { ui.textBrowse->append(mProcess.readAllStandardError()); } void FloodForecast::processError(QProcess::ProcessError error) { if(error==QProcess::FailedToStart) { ui.textBrowse->append("<font color=red>程序启动失败.</font>/r/n"); } } void FloodForecast::processFinished(int exitCode,QProcess::ExitStatus exitStatus) { if(exitStatus == QProcess::CrashExit) { ui.textBrowse->append("<font color=red>程序异常终止.</font>/r/n"); } else { ui.textBrowse->append("<font color=green>程序正常结束.</font>/r/n"); } }