PyQt5中用于QProcess的刷新缓冲区

时间:2016-11-04 02:06:37

标签: python qt pyqt raspberry-pi pyqt5

我有一个使用PyQt5框架的Python 3.4应用程序,我遇到了问题。

我设置了QProcess:

def listenToServer(self, MainWindow):
    self.ws = QtCore.QProcess(self)
    self.ws.start("python3 /home/pi/scara_panel/ws.py")
    self.ws.readyReadStandardOutput.connect(self.processServer)

它调用了这个函数:

def processServer(self):
    income = str(self.ws.readAllStandardOutput())
    print(income)

在桌面上,它运行正常。它会流入应用程序。但是,当程序在Raspberry Pi上运行时,它只显示脚本ws.py终止时读取的内容。

我读过这与Python中的输出缓冲有关。我尝试过添加-u标志,但没有骰子。有关如何在使用readAllStandardOutput()?

时清除此缓冲区的任何建议

我已尝试从Disable output buffering实施一些内容,但似乎没有解决问题。

感谢任何帮助!

1 个答案:

答案 0 :(得分:0)

您可以通过

立即刷新输出
print(income, flush=True)

有关详细信息,请参阅How to flush output of Python print?