oneitem.h 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  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. /* 获取动作类型 */
  46. int getActionNum();
  47. /* 添加所有设备 */
  48. void addDevice();
  49. /* 获取日期类型 */
  50. bool getDateType();
  51. /* 设置警告 */
  52. void setWarningText(QString str,int ms = 3000);
  53. /* 隐藏警告 */
  54. void hideWarn();
  55. /* 获取执行时间的位置,相对于该项的位置 */
  56. QPoint getExecTimePos();
  57. /* 获取执行日期的位置 */
  58. QPoint getExecDatePos();
  59. /* 获取执行时间按钮的大小 */
  60. QSize getExecTimeSize();
  61. /* 获取执行日期按钮的大小 */
  62. QSize getExecDateSize();
  63. signals:
  64. /* 一个OneItem被删除了 */
  65. void signal_OneItemDelete(int week, int num);
  66. /* 日期被点击了 */
  67. void signal_dateClicked(QDate date);
  68. /* 执行时间被点击了 */
  69. void signal_execTimeClicked(QTime time);
  70. /* 设备改变了 */
  71. void signal_devChanged();
  72. private slots:
  73. /* 设备改变了 */
  74. void do_devChanged(QString devName);
  75. /* 动作改变了 */
  76. void do_actionChanged(QString action);
  77. /* 执行时间被点击了 */
  78. void do_pBtn_execTime_clicked();
  79. /* 执行日期被点击了 */
  80. void do_pBtn_execDate_clicked();
  81. /* 关闭按钮被点击了 */
  82. void do_pBtn_close_clicked();
  83. private:
  84. /* 根据日期类型布局 */
  85. void layoutInit();
  86. protected:
  87. /* 事件过滤器 */
  88. bool eventFilter(QObject *watched, QEvent *event);
  89. private:
  90. Ui::OneItem *ui;
  91. QUuid m_uuid; /* 项的唯一识别号,做判断的时候使用 */
  92. bool m_isSpecial = false;
  93. QTimer m_warnTimer;
  94. DeviceInfo m_devInfo;
  95. int m_weekDay = -1;
  96. int m_num = -1;
  97. QTime m_time;
  98. QDate m_date;
  99. };
  100. #endif // ONEITEM_H