123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101 |
- #include "UIStyleManager.h"
- #include <QFile>
- #include <QEventLoop>
- #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));
- }
- /* 打开PlanCard样式 */
- qssPath.clear();
- qssPath = EPUIStyle.getQSSPath() + "/plancard.qss";
- file.setFileName(qssPath);
- if(file.open(QFile::ReadOnly))
- {
- QString qss = file.readAll();
- StrQSS_PlanCard = qss;
- file.close();
- }else {
- LH_WRITE_ERROR(QString("打开样式表失败: %1").arg(qssPath));
- }
- /* 打开ManagerPlan样式 */
- qssPath.clear();
- qssPath = EPUIStyle.getQSSPath() + "/managerplan.qss";
- file.setFileName(qssPath);
- if(file.open(QFile::ReadOnly))
- {
- QString qss = file.readAll();
- StrQSS_ManagerPlan = qss;
- file.close();
- }else {
- LH_WRITE_ERROR(QString("打开样式表失败: %1").arg(qssPath));
- }
- }
|