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