Как получить вывод команды, запущенной QProcess в PySide?

Я хотел бы знать, как я могу захватить вывод команды, запущенной QProcess в PySide, чтобы ее можно было отобразить.


person polandeer    schedule 18.05.2012    source источник


Ответы (2)


В итоге я использовал это:

  # Create runner
  self.runner = QProcess(self)
  # Make sure newInfo gets all output
  self.runner.readyReadStandardError.connect(self.newErrInfo)
  # Run the command
  self.runner.start(command)
  # Once it's started set message to Converting
  self.parentWidget().statusBar().showMessage("Converting.")

Затем позже в классе:

def newErrInfo(self):
  newString = str(self.runner.readAllStandardError())
  print(newString, end=" ")

readAllStandardOutput() также работает для стандартного вывода

person polandeer    schedule 19.05.2012

 QProcess qp;
 qp.start("Yourcode");
 qp.waitForFinished();
 qDebug() << "qp:" << qp.readAll();

Для прямого чтения вы можете использовать такие функции, как canReadLine(),readyread(),waitforreadyread() и waitforbyteswriting().

Используйте эти функции в механизме signal-slot для сбора данных в реальном времени.

person ScarCode    schedule 18.05.2012
comment
Нет, не после завершения выполнения команды. Я имею в виду, как команда работает. - person polandeer; 18.05.2012
comment
Спасибо. Я думаю, что нашел другой ответ, хотя. - person polandeer; 18.05.2012