2016-11-04 6 views
2

PyQt5フレームワークを使用しているPython 3.4アプリがあり、問題があります。PyQt5のQProcess用フラッシュバッファー

Iセットアップ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からいくつかの実装を試みましたが、何も問題を解決していないようです。

ご協力いただきましてありがとうございます。

答えて

0

あなたはより多くの情報がHow to flush output of Python print?

を参照してください

print(income, flush=True) 

を経由して、すぐにフラッシュするために、あなたの出力を得ることができます