1.开启一个线程
import builtins
from PyQt5.QtCore import QThread, pyqtSignal
class Worker(QThread):
# 定义一个新的信号,用于发送日志消息
new_log_msg = pyqtSignal(str)
def __init__(self):
super().__init__()
# 将内置的 print 函数重定向到发送新消息的信号
builtins.__dict__["print"] = lambda x: self.new_log_msg.emit(x)
def run(self):
pass
2.ui界面
import time
from PyQt5.QtGui import QTextCursor
def update_log(self, msg):
# 如果消息是换行符,则直接添加到日志文本框,只支持print(1),不支持print(1,2)这种,自己实现一下
if msg == '\n':
self.log_textBrowser.append(msg)
else:
# 否则,在消息前添加时间戳,然后添加到日志文本框
self.log_textBrowser.append(time.strftime("%H:%M:%S") + " " + msg)
# 移动光标到文本框末尾
cursor = self.log_textBrowser.textCursor()
cursor.movePosition(QTextCursor.End)
self.log_textBrowser.setTextCursor(cursor)
def init_ui(self):
# 初始化 Worker 实例
self.worker = Worker()
# 将新消息信号连接到更新日志函数
self.worker.new_log_msg.connect(self.update_log)
# 启动 Worker 线程
self.worker.start()
本文使用MdSync工具发布!
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。