1
다음을 실행할 때 readyReadStandardOutput 신호를받지 못하는 이유는 무엇입니까? 여기QProcess의 readyReadStandardOutput 신호가 없음
import os, sys, textwrap
from PyQt4 import QtGui, QtCore
out_file = open("sleep_loop.py", 'w')
out_file.write(textwrap.dedent("""
import time
while True:
print "sleeping..."
time.sleep(1)"""))
out_file.close()
def started():
print "started"
def on_error(error):
errors = ["Failed to start", "Crashed", "Timedout", "Read error",
"Write Error", "Unknown Error"]
print "error: ", errors[error]
def on_state_change(new_state):
states = ["Not running", "Starting", "Running"]
print "new state: ", states[new_state]
def on_out():
print "got out"
proc = QtCore.QProcess()
sig = QtCore.SIGNAL
proc.connect(proc, sig("started()"), started)
proc.connect(proc, sig("error(ProcessError)"), on_error)
proc.connect(proc, sig("readyReadStandardOutput()"), on_out)
proc.connect(proc, sig("stateChanged(ProcessState)"),
on_state_change)
proc.start("python sleep_loop.py")
app = QtGui.QApplication(sys.argv)
widget = QtGui.QWidget()
widget.show()
app.exec_()
proc.close()
예, 작동합니다. 감사. 그냥 아마 파이썬 프로세스에 -u 플래그를 전달하여 버퍼되지 않은 출력을 만드는 것이 더 좋을 것이라고 생각했습니다. 그렇게하면 대상 스크립트를 변경할 필요가 없습니다. –