#include "lhstylemanager.h" #include #include 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); } }