pyqt5怎么实时显示控制台打印的内容
时间: 2023-10-21 11:03:38 浏览: 55
你可以使用QPlainTextEdit控件来实时显示控制台打印的内容。首先,你需要将sys.stdout重定向到一个自定义的输出流,然后将输出流连接到QPlainTextEdit控件的插入文本槽,代码如下:
```python
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout, QPlainTextEdit
from PyQt5.QtCore import Qt, QTextStream
class ConsoleWidget(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.console = QPlainTextEdit()
self.console.setReadOnly(True)
self.console.setMaximumBlockCount(1000)
self.console.setPlainText("")
layout = QVBoxLayout()
layout.addWidget(self.console)
self.setLayout(layout)
# 重定向标准输出
sys.stdout = CustomStream(stdout=True, widget=self.console)
class CustomStream(QTextStream):
def __init__(self, stdout=True, widget=None):
super().__init__()
self.stdout = stdout
self.widget = widget
def write(self, s):
super().write(s)
if self.widget is not None:
if self.stdout:
self.widget.insertPlainText(s)
else:
self.widget.insertHtml("<font color='red'>" + s + "</font>")
```
然后,你只需要创建一个ConsoleWidget实例并将其添加到你的应用程序窗口中即可。