oneitem.h 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123
  1. #ifndef ONEITEM_H
  2. #define ONEITEM_H
  3. #include <QWidget>
  4. #include <QTimer>
  5. #include <QUuid>
  6. #include "TransmitterSwitchInfo.h"
  7. namespace Ui {
  8. class OneItem;
  9. }
  10. class OneItem : public QWidget
  11. {
  12. Q_OBJECT
  13. public:
  14. explicit OneItem(QWidget *parent = nullptr, bool isSpecial = false);
  15. explicit OneItem(bool isSpecial = false);
  16. ~OneItem();
  17. /* 初始化 */
  18. void init();
  19. /* 获取UUID */
  20. QUuid getUUID() { return m_uuid; }
  21. /* 设置周几 */
  22. void setWeekDay(int week) { m_weekDay = week; }
  23. /* 获取周几 */
  24. int getWeekDay() { return m_weekDay; }
  25. /* 设置序号 */
  26. void setNum(int num);
  27. /* 获取序号 */
  28. int getNum();
  29. /* 设置日期 */
  30. void setDate(const QDate& date);
  31. /* 获取日期 */
  32. QDate getDate();
  33. /* 设置执行时间 */
  34. void setExecTime(const QTime& time);
  35. /* 获取执行时间 */
  36. QTime getExecTime();
  37. /* 设置设备名称 */
  38. void setDevName(const QString& dev);
  39. /* 获取设备名称 */
  40. QString getDevName();
  41. /* 添加设备支持的动作 */
  42. void addActions();
  43. /* 获取动作名称 */
  44. QString getActionName();
  45. /* 获取动作ID */
  46. int getActionNum();
  47. /* 设置动作ID */
  48. void setActionNum(int num);
  49. /* 添加所有设备 */
  50. void addDevice();
  51. /* 获取日期类型 */
  52. bool getDateType();
  53. /* 设置警告 */
  54. void setWarningText(QString str,int ms = 3000);
  55. /* 隐藏警告 */
  56. void hideWarn();
  57. /* 获取执行时间的位置,相对于该项的位置 */
  58. QPoint getExecTimePos();
  59. /* 获取执行日期的位置 */
  60. QPoint getExecDatePos();
  61. /* 获取执行时间按钮的大小 */
  62. QSize getExecTimeSize();
  63. /* 获取执行日期按钮的大小 */
  64. QSize getExecDateSize();
  65. signals:
  66. /* 一个OneItem被删除了 */
  67. void signal_OneItemDelete(int week, int num);
  68. /* 日期被点击了 */
  69. void signal_dateClicked(QDate date);
  70. /* 执行时间被点击了 */
  71. void signal_execTimeClicked(QTime time);
  72. /* 设备改变了 */
  73. void signal_devChanged();
  74. public slots:
  75. /* 设置样式表,打开的样式表 */
  76. void do_setQSS(const QString& qss);
  77. private slots:
  78. /* 设备改变了 */
  79. void do_devChanged(QString devName);
  80. /* 动作改变了 */
  81. void do_actionChanged(QString action);
  82. /* 执行时间被点击了 */
  83. void do_pBtn_execTime_clicked();
  84. /* 执行日期被点击了 */
  85. void do_pBtn_execDate_clicked();
  86. /* 关闭按钮被点击了 */
  87. void do_pBtn_close_clicked();
  88. /* 修改了执行日期 */
  89. void do_dateChanged(const QDate date);
  90. private:
  91. /* 根据日期类型布局 */
  92. void layoutInit();
  93. protected:
  94. /* 事件过滤器 */
  95. bool eventFilter(QObject *watched, QEvent *event);
  96. private:
  97. Ui::OneItem *ui;
  98. QUuid m_uuid; /* 项的唯一识别号,做判断的时候使用 */
  99. bool m_isSpecial = false;
  100. QTimer m_warnTimer;
  101. DeviceInfo m_devInfo;
  102. int m_weekDay = -1;
  103. int m_num = -1;
  104. QTime m_time;
  105. QDate m_date;
  106. };
  107. #endif // ONEITEM_H