关于控制台定向输出到GUI时文字颜色字体的控制问题(大致说个方向就行)
我将控制台结果定向输出到UI界面,文字颜色字体怎么也改不了,请高手指点下。以下代码源自互联网,用来方便交流用:我想把 输出结果:running hello done 字号变大,换个颜色
程序代码:
import sys import time from PyQt5.QtCore import QObject, pyqtSignal, QEventLoop, QTimer from PyQt5.QtWidgets import QMainWindow, QPushButton, QApplication, QTextEdit from PyQt5.QtGui import QTextCursor ''' 控制台输出定向到Qtextedit中 ''' class Stream(QObject): """Redirects console output to text widget.""" newText = pyqtSignal(str) def write(self, text): self.newText.emit(str(text)) class GenMast(QMainWindow): """Main application window.""" def __init__(self): super().__init__() self.initUI() # Custom output stream. sys.stdout = Stream(newText=self.onUpdateText) def onUpdateText(self, text): """Write console output to text widget.""" cursor = self.process.textCursor() cursor.movePosition(QTextCursor.End) cursor.insertText(text) self.process.setTextCursor(cursor) self.process.ensureCursorVisible() def closeEvent(self, event): """Shuts down application on close.""" # Return stdout to defaults. sys.stdout = sys.__stdout__ super().closeEvent(event) def initUI(self): """Creates UI window on launch.""" # Button for generating the master list. btnGenMast = QPushButton('Run', self) btnGenMast.move(450, 50) btnGenMast.resize(100, 200) btnGenMast.clicked.connect(self.genMastClicked) # Create the text output widget. self.process = QTextEdit(self, readOnly=True) self.process.ensureCursorVisible() self.process.setLineWrapColumnOrWidth(500) self.process.setLineWrapMode(QTextEdit.FixedPixelWidth) self.process.setFixedWidth(400) self.process.setFixedHeight(200) self.process.move(30, 50) # Set window size and title, then show the window. self.setGeometry(300, 300, 600, 300) self.setWindowTitle('Generate Master') self.show() def printhello(self): print('hello') def genMastClicked(self): """Runs the main function.""" print('Running...') self.printhello() loop = QEventLoop() QTimer.singleShot(2000, loop.quit) loop.exec_() print('Done.') if __name__ == '__main__': # Run the application. app = QApplication(sys.argv) app.aboutToQuit.connect(app.deleteLater) gui = GenMast() sys.exit(app.exec_())