#include "powermonitor.h" #ifdef Q_OS_LINUX #include "powermonitor_linux.h" #elif defined(Q_OS_MAC) #include "powermonitor_macos.h" #endif #include PowerMonitor::PowerMonitor(QObject *parent) : PowerMonitorBase(parent) , m_impl(nullptr) { #ifdef Q_OS_LINUX m_impl = new PowerMonitorLinux(this); qDebug() << "创建 Linux 电源监视器实例"; #elif defined(Q_OS_MAC) m_impl = new PowerMonitorMacOS(this); qDebug() << "创建 macOS 电源监视器实例"; #else qWarning() << "警告:当前平台不支持电源监视功能"; #endif if (m_impl) { // 转发平台实现的信号到工厂类 connect(m_impl, &PowerMonitorBase::aboutToSleep, this, &PowerMonitor::aboutToSleep); connect(m_impl, &PowerMonitorBase::aboutToWakeUp, this, &PowerMonitor::aboutToWakeUp); connect(m_impl, &PowerMonitorBase::powerStateChanged, this, &PowerMonitor::powerStateChanged); // 自动初始化 m_impl->initialize(); } } PowerMonitor::~PowerMonitor() { // m_impl 会被 Qt 的父对象机制自动删除 } bool PowerMonitor::initialize() { if (m_impl) { return m_impl->initialize(); } return false; }