QT 使用QProcess 调用外部程序并截取输出流

 

隐藏行号 复制代码 这是一段程序代码。
  1. connect(&mProcess, SIGNAL(readyReadStandardOutput()), this,    SLOT(redFromStdOut())); 
    
  2. connect(&mProcess, SIGNAL(readyReadStandardError()), this,    SLOT(redFromStdErr())); 
    
  3. connect(&mProcess, SIGNAL(error(QProcess::ProcessError)), this, SLOT(processError(QProcess::ProcessError)));
    
  4. connect(&mProcess, SIGNAL(finished(int,QProcess::ExitStatus)), this, SLOT(processFinished(int,QProcess::ExitStatus)));
    
隐藏行号 复制代码 这是一段程序代码。
  1. void FloodForecast::redFromStdOut()
    
  2. {
    
  3.     ui.textBrowse->append(mProcess.readAllStandardOutput());
    
  4. }
    
  5. 
    
  6. void FloodForecast::redFromStdErr()
    
  7. {
    
  8.     ui.textBrowse->append(mProcess.readAllStandardError());
    
  9. }
    
  10. 
    
  11. void FloodForecast::processError(QProcess::ProcessError error)
    
  12. {
    
  13.     if(error==QProcess::FailedToStart)
    
  14.     {
    
  15.         ui.textBrowse->append("<font color=red>程序启动失败.</font>\r\n");
    
  16.     }
    
  17. }
    
  18. 
    
  19. void FloodForecast::processFinished(int exitCode,QProcess::ExitStatus exitStatus)
    
  20. {
    
  21.     if(exitStatus == QProcess::CrashExit)
    
  22.     {
    
  23.         ui.textBrowse->append("<font color=red>程序异常终止.</font>\r\n");
    
  24.     }
    
  25.     else
    
  26.     {
    
  27.         ui.textBrowse->append("<font color=green>程序正常结束.</font>\r\n");
    
  28.     }
    
  29. }
    

 

posted @ 2010-08-10 09:04  chillwind  阅读(4111)  评论(0)    收藏  举报