当我使用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命令的助手,正如我所期望的那样。虽然如果我将程序变量更改为其他值,但它并不总是有效的,例如,如果我这样做:
^{pr2}$它不会像在控制台中那样打印pyinstaller的助手。 在这种情况下,我应该如何得到输出?在
pyinstaller可能正在打印到stderr而不是stdout。你可以QProcess.readAll()通过调用(在
self.process.start(program)
之前)返回两个输出setProcessChannelMode(QProcess.MergedChannels)
相关问题 更多 >
编程相关推荐