[英]PyQt4: QProcess readyRead does not always emit correctly
當我使用pyqt運行程序時,每次都無法正確獲取輸出。 這是一個例子:
from PyQt4 import QtCore, QtGui
import sys
class MainWindow(QtGui.QMainWindow):
def __init__(self):
QtGui.QWidget.__init__(self)
program = "ping"
self.process = QtCore.QProcess()
self.process.readyRead.connect(self.readoutput)
self.process.start(program)
def readoutput(self):
print str(self.process.readAll())
def main():
app = QtGui.QApplication(sys.argv)
ex = MainWindow()
sys.exit(app.exec_())
if __name__ == '__main__':
main()
在這種情況下,輸出就是ping命令的助手,正如我所期望的那樣。 雖然如果我將程序變量更改為其他值,則它並不總是有效,例如,如果我這樣做:
program = "pyinstaller"
它不會在控制台中顯示pyinstaller的幫助程序。 在這種情況下,我應該如何獲得輸出?
pyinstaller可能正在打印到stderr而不是stdout。 您可以通過調用(在self.process.start(program)
之前)使QProcess.readAll()返回兩個輸出。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.