Pyqt5入门学习笔记(三)——实现控制台显示程序运行功能

一、布局:

在QtDesigner中或者直接在py文件中写入一个相当于显示程序运行输出结果的文本框控件,例如textEdit,textBrowser,再添加一个按钮来测试启动。

二、写一个信号类,迎来发射标准输出作为信号:

class EmittingStr(QtCore.QObject):  
        textWritten = QtCore.pyqtSignal(str)  #定义一个发送str的信号
        def write(self, text):
            self.textWritten.emit(str(text))

三、实现代码:

将输出重定向到textBrowser中:

sys.stdout = EmittingStream(textWritten=self.outputWritten)
sys.stderr = EmittingStream(textWritten=self.outputWritten)

四、接受信号str的信号槽:

    def outputWritten(self, text):
        cursor = self.textBrowser.textCursor()
        cursor.movePosition(QtGui.QTextCursor.End)
        cursor.insertText(text)
        self.textBrowser.setTextCursor(cursor)
        self.textBrowser.ensureCursorVisible()

五、运行结果:

猜你喜欢

转载自blog.csdn.net/weixin_39626452/article/details/86700430