pyqt Logger设计

Logger 类详解:全局日志管理器的设计与实现

类定义与功能概述

Logger 类是一个基于 Qt 信号槽机制的全局日志管理组件,主要功能是统一收集各模块的日志消息并通过信号发送,实现日志的集中管理和显示。

class Logger(QObject):
    """全局日志管理器,通过信号传递日志消息"""
    log_message = pyqtSignal(str)  # 定义日志消息信号,携带字符串参数
    
    def log(self, message):
        """发送日志消息到信号"""
        self.log_message.emit(message)
核心组成部分分析
  1. 信号定义

    log_message = pyqtSignal(str)
    
    • 这是一个自定义的 Qt 信号,用于传递日志消息字符串
    • 信号是 Qt 框架中对象间通信的核心机制,支持跨线程安全通信
    • 当信号被触发(emit)时,所有连接到该信号的槽函数会被调用
  2. 日志发送方法

    def log(self, message):
        self.log_message.emit(message)
    
    • log 方法是外部调用的接口,接收日志消息
    • 通过 emit 触发信号,将日志消息传递给所有连接的槽函数
    • 该设计实现了"发送日志"与"显示日志"的解耦,符合开闭原则
在项目中的应用场景
  1. 主窗口中的初始化

    class MainWindow(QMainWindow):
        def __init__(self):
            # 初始化全局日志管理器
            self.logger = Logger()
            # 连接信号到界面显示槽函数
            self.logger.log_message.connect(self.log_to_ui)
    
    • 在主窗口中创建 Logger
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值