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工具发布!

代码人生笔记
1 声望0 粉丝