UIStyleManager.h 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. #ifndef UISTYLEMANAGER_H
  2. #define UISTYLEMANAGER_H
  3. #include <QObject>
  4. /**
  5. * @brief UI样式
  6. *
  7. */
  8. enum class enum_UIStyle
  9. {
  10. UI_Light = 0, /* 亮色 */
  11. UI_Dark = 1 /* 暗色 */
  12. };
  13. #define EPUIStyle UIStyleManager::getInstance()
  14. /**
  15. * @brief 全局皮肤管理器,大部分的UI从这里加载qss文件
  16. *
  17. */
  18. class UIStyleManager : public QObject
  19. {
  20. Q_OBJECT
  21. UIStyleManager();
  22. UIStyleManager(const UIStyleManager& config) = delete;
  23. UIStyleManager& operator=(const UIStyleManager& config) = delete;
  24. public:
  25. ~UIStyleManager() {}
  26. static UIStyleManager& getInstance()
  27. {
  28. static UIStyleManager config;
  29. return config;
  30. }
  31. QString StrQSS_TransmitterSwitch; /* 主窗口样式表 */
  32. QString StrQSS_PBtnFrequency; /* 频率按钮样式表 */
  33. QString StrQSS_PlanCard; /* 计划卡片样式表 */
  34. QString StrQSS_ManagerPlan; /* 计划管理窗口样式表 */
  35. /* 获取样式表路径 */
  36. QString getQSSPath();
  37. /* 换肤,修改样式表 */
  38. void setUIStyle(enum_UIStyle style);
  39. /* 获取当前UI风格 */
  40. enum_UIStyle getUIStyle() { return m_UIStyle; }
  41. signals:
  42. /* 样式表改变了 */
  43. void signal_qssChanged();
  44. private:
  45. /* 读取qss样式文件 */
  46. void readQSSFile();
  47. private:
  48. enum_UIStyle m_UIStyle; /* 当前UI样式 */
  49. QString m_qssPath; /* 样式表路径 */
  50. const QString m_lightQSS = "/white"; /* 亮色样式表路径 */
  51. const QString m_darkQSS = "/dark"; /* 暗色样式表路径 */
  52. };
  53. #endif /* UISTYLEMANAGER_H */