pyqt ,QTextEdit 文本显示框 实时显示print的内容
时间: 2024-09-21 08:09:08 浏览: 89
PyQt是一个Python绑定库,用于集成Qt框架,提供了一套丰富的图形用户界面工具。QTextEdit是PyQt中的一个组件,它是一个富文本编辑器,可以用来展示文本内容,包括纯文本、HTML等。
如果你想实现在QTextEdit中实时显示`print()`的内容,你可以创建一个`QTextEdit`实例,并在一个线程中处理打印操作。这是因为直接在主线程里运行可能会阻塞界面更新,所以需要使用`QThread`来分离计算密集型的任务。
以下是一个简单的示例:
```python
import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QTextEdit
from PyQt5.QtCore import Qt, QThread, pyqtSignal
class PrintThread(QThread):
text_signal = pyqtSignal(str) # 创建信号槽
def run(self):
while True:
line = "这是来自print的内容:" + str(print()) # 模拟print输出
self.text_signal.emit(line) # 发送信号到主线程
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
self.text_edit = QTextEdit()
self.text_edit.setReadOnly(True)
self.setCentralWidget(self.text_edit)
self.print_thread = PrintThread()
self.print_thread.text_signal.connect(self.update_text) # 连接信号到槽
self.print_thread.start()
def update_text(self, text): # 更新文本的方法
self.text_edit.append(text)
if __name__ == '__main__':
app = QApplication(sys.argv)
main_win = MainWindow()
main_win.show()
sys.exit(app.exec_())
```
在这个例子中,`PrintThread`负责处理打印并发送数据到主线程,`MainWindow`的`update_text`方法接收并显示这些数据显示在`QTextEdit`中。
阅读全文