【问题标题】:How do I get the output of a command run by QProcess in PySide?如何在 PySide 中获取 QProcess 运行的命令的输出?
【发布时间】:2012-05-18 17:49:45
【问题描述】:

我想知道如何在 PySide 中捕获 QProcess 运行的命令的输出以便显示。

【问题讨论】:

    标签: python qt python-3.x pyside qprocess


    【解决方案1】:

    我最终使用了这个:

      # 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() 也适用于标准输出

    【讨论】:

      【解决方案2】:
       QProcess qp;
       qp.start("Yourcode");
       qp.waitForFinished();
       qDebug() << "qp:" << qp.readAll();
      

      对于实时阅读,您可以使用 canReadLine()readyread()waitforreadyread()waitforbyteswritten() 等函数。

      signal-slot机制中使用这些函数来实时捕获数据。

      【讨论】:

      • 不,不是在命令完成运行之后。我的意思是命令正在运行。
      • 谢谢。不过,我想我找到了另一个答案。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-05-21
      • 2021-07-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多