1、定义发送信号槽
class EmittingStr(QtCore.QObject):
textWritten = QtCore.pyqtSignal(str) #定义一个发送str的信号
def write(self, text):
self.textWritten.emit(str(text))
2、给信号槽添加定时器
loop = QEventLoop()
QTimer.singleShot(1000, loop.quit)
loop.exec_()
EmittingStr的完整代码如下:
class EmittingStr(QtCore.QObject):
textWritten = QtCore.pyqtSignal(str) #定义一个发送str的信号
def write(self, text):
self.textWritten.emit(str(text))
loop = QEventLoop()
QTimer.singleShot(1000, loop.quit)
loop.exec_()
3、在主py文件中重定向输出
# 下面将输出重定向到textBrowser中
sys.stdout = EmittingStr(textWritten=self.outputWritten)
sys.stderr = EmittingStr(textWritten=self.outputWritten)
完成以上三步,当我们在代码中调用print时,会将print的指令要输出的内容,定向到控制台输出。
完美。
参考文献:https://www.jb51.net/article/163898.htm