oneitem.h 2.7 KB

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