pyqt5怎么实时显示程序中print打印的内容
时间: 2024-03-12 07:49:25 浏览: 170
你可以使用与上面相同的方法来实时显示程序中print打印的内容。只需要将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>")
```
然后,在你的程序中使用print语句时,它们将自动重定向到QPlainTextEdit控件。
阅读全文
相关推荐














