#include "UIStyleManager.h" #include #include #include "LHQLogAPI.h" UIStyleManager::UIStyleManager() { m_qssPath = ":/QSS/QSS"; } /* 获取样式表路径 */ QString UIStyleManager::getQSSPath() { if(m_UIStyle == enum_UIStyle::UI_Light) { return m_qssPath + m_lightQSS; } else if(m_UIStyle == enum_UIStyle::UI_Dark) { return m_qssPath + m_darkQSS; } return QString(); } /* 换肤,修改样式表 */ void UIStyleManager::setUIStyle(enum_UIStyle style) { m_UIStyle = style; /* 打开所有的QSS文件 */ readQSSFile(); /* 发送普通换肤信号信号 */ emit signal_qssChanged(); /* 处理事件,让UI接收到换肤信号 */ QEventLoop loop; loop.processEvents(); LH_WRITE_LOG(QString("换肤成功,皮肤样式:%1").arg((int)m_UIStyle)); } /* 读取qss样式文件调用前需要先设置完成样式类型 */ void UIStyleManager::readQSSFile() { QFile file; /* 打开主窗口样式表 */ QString qssPath = getQSSPath() + "/transmitterswitch.qss"; file.setFileName(qssPath); if(file.open(QIODevice::ReadOnly)) { StrQSS_TransmitterSwitch = file.readAll(); file.close(); }else { LH_WRITE_ERROR(QString("打开样式表失败: %1").arg(qssPath)); } /* 打开频率按钮的样式表 */ qssPath.clear(); qssPath = EPUIStyle.getQSSPath() + "/pBtn_frequency.qss"; file.setFileName(qssPath); if(file.open(QFile::ReadOnly)) { QString qss = file.readAll(); StrQSS_PBtnFrequency = qss; file.close(); }else { LH_WRITE_ERROR(QString("打开样式表失败: %1").arg(qssPath)); } }