32 lines
910 B
C++
Executable File
32 lines
910 B
C++
Executable File
#ifndef __LOG_HANDLER_H__
|
||
#define __LOG_HANDLER_H__
|
||
|
||
#include <QObject>
|
||
#include <QPlainTextEdit>
|
||
#include <QMutex>
|
||
|
||
class LogHandler : public QObject {
|
||
Q_OBJECT
|
||
public:
|
||
// 获取单例实例
|
||
static LogHandler* log_instance();
|
||
|
||
// 初始化日志输出目标(UI控件)
|
||
static void log_init(QPlainTextEdit *logWidget = nullptr);
|
||
|
||
// Qt 消息处理函数(静态)
|
||
static void log_handleMessage(QtMsgType type, const QMessageLogContext &context, const QString &msg);
|
||
|
||
signals:
|
||
// 日志信号(用于跨线程传递)
|
||
void log_messageLogged(const QString &formattedMsg);
|
||
|
||
private:
|
||
explicit LogHandler(QObject *parent = nullptr);
|
||
static LogHandler *s_instance; // 单例实例
|
||
static QMutex s_mutex; // 线程安全锁
|
||
QPlainTextEdit *m_logWidget; // 日志输出UI组件
|
||
};
|
||
|
||
#endif
|