PYQT5实现控制台显示功能的方法

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

你可能感兴趣的:(QT)