| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 | #include "lhstylemanager.h"#include <QCoreApplication>#include <QDebug>LHStyleManager* LHStyleManager::m_instance = NULL;LHStyleManager::LHStyleManager(QObject *parent) : QObject(parent){    m_nCurStyle = eDeepStyle;}LHStyleManager::~LHStyleManager(){    qDebug()<<__func__;    if(m_instance)    {        delete m_instance;    }}LHStyleManager *LHStyleManager::Instance(){    if(m_instance != NULL)    {        return m_instance;    }    m_instance = new LHStyleManager();    return m_instance;}void LHStyleManager::AddWidget(QWidget *widget){    if(widget != NULL && !m_widgetList.contains(widget))    {        m_widgetList.append(widget);        UpdateWidgetStyle(widget);    }    else if(m_widgetList.contains(widget))    {        UpdateWidgetStyle(widget);    }}void LHStyleManager::UpdateWidgetStyle(QWidget *widget){    if(widget == NULL)    {        return;    }    QString strBasePath = QCoreApplication::applicationDirPath();    QString strStylePath;    QString strName = widget->objectName();    if(m_nCurStyle == eDeepStyle)    {        strStylePath = ":/deep";    }    else if(m_nCurStyle == eLightStyle)    {        strStylePath = ":/light";    }    QString strStyleFile = QString("%1/%2.qss").arg(strStylePath).arg(strName);    QFile file(strStyleFile);    file.open(QFile::ReadOnly);    QString styleSheet = QLatin1String(file.readAll());    widget->setStyleSheet(styleSheet);    file.close();}void LHStyleManager::SetSkinStyle(int nStyle){    if(m_nCurStyle == nStyle)    {        return;    }    m_nCurStyle = nStyle;    for(int i = 0; i < m_widgetList.size(); i++)    {        QWidget* widget = m_widgetList.at(i);        if(widget == NULL) continue;        UpdateWidgetStyle(widget);    }}
 |