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

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

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 () также работает для stdout

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

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

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

Другие вопросы по тегам