Как получить вывод команды, запускаемой 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 ().
Используйте эти функции в сигнальном слоте для захвата данных в реальном времени.