PyQt5 中 QProcess 的刷新缓冲区
Posted
技术标签:
【中文标题】PyQt5 中 QProcess 的刷新缓冲区【英文标题】:Flush buffer for QProcess in PyQt5 【发布时间】:2016-11-04 02:06:37 【问题描述】:我有一个使用 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】:您可以通过
立即刷新输出print(income, flush=True)
更多信息见How to flush output of Python print?
【讨论】:
以上是关于PyQt5 中 QProcess 的刷新缓冲区的主要内容,如果未能解决你的问题,请参考以下文章