addnormalitem.h 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. #ifndef ADDNORMALITEM_H
  2. #define ADDNORMALITEM_H
  3. #include <QDialog>
  4. #include <QTime>
  5. #include <QComboBox>
  6. class TimeWidget;
  7. class DeviceInfo;
  8. class OneShadow;
  9. namespace Ui {
  10. class AddNormalItem;
  11. }
  12. class AddNormalItem : public QDialog
  13. {
  14. Q_OBJECT
  15. public:
  16. explicit AddNormalItem(QWidget *parent = nullptr);
  17. ~AddNormalItem();
  18. /* 设置父指针,时间选择器需要使用 */
  19. void setParentPointer(QWidget* p);
  20. /* 添加可选设备 */
  21. void setDevice(QMap<QString, DeviceInfo>& mapDev);
  22. /* 设置周几 */
  23. void setWeekDay(int week);
  24. /* 获取设别名称 */
  25. QString getDevName() const { return m_devName; }
  26. /* 获取动作 */
  27. QString getAction() const { return m_action; }
  28. int getActionID() const { return m_actionID; }
  29. /* 获取时间 */
  30. QTime getTime() const { return m_time; }
  31. /* 判断是否添加设备 */
  32. bool isAddDev() const { return m_isAddDev; }
  33. /* 设置QSS */
  34. void setQSS(const QString& qssPath);
  35. signals:
  36. /* 添加正常日期的项 */
  37. void signal_addNormalItem(QString dev,QString action,QTime time);
  38. private slots:
  39. /* 进行查重和关闭页面 */
  40. void do_ok();
  41. /* 选择了设备,设置其对应的动作 */
  42. void do_selectDev();
  43. /* 选择了动作 */
  44. void do_selectAction();
  45. /* 点击了时间选择按钮,打开时间选择器 */
  46. void do_selectTime();
  47. private:
  48. /* 设置选择框报警 */
  49. void setComboBoxWarning(QComboBox* bo,bool flag);
  50. /* 设置时间报警 */
  51. void setTimeEditWarning(bool flag);
  52. void setAction(const QString& devName);
  53. protected:
  54. /* 事件过滤器 */
  55. bool eventFilter(QObject *watched, QEvent *event) override;
  56. /* 绘画事件 */
  57. // void paintEvent(QPaintEvent *event) override;
  58. /* 鼠标点击事件 */
  59. void mousePressEvent(QMouseEvent *event) override;
  60. /* 鼠标移动事件 */
  61. void mouseMoveEvent(QMouseEvent *event) override;
  62. /* 鼠标释放事件 */
  63. void mouseReleaseEvent(QMouseEvent *event) override;
  64. private:
  65. Ui::AddNormalItem *ui;
  66. QWidget* m_parent = nullptr; /* 父类指针 */
  67. QRect m_rectScreen; /* 屏幕大小 */
  68. int m_week = -1; /* 周几 */
  69. bool m_isAddDev = false; /* 是否添加设备 */
  70. QString m_devName; /* 选择的设备 */
  71. QString m_action; /* 选择的动作 */
  72. int m_actionID = 0; /* 动作ID */
  73. QTime m_time; /* 执行的时间 */
  74. TimeWidget* m_timeWidget = nullptr; /* 时间选择器 */
  75. QPoint m_lastPos; /* 鼠标点击的位置 */
  76. };
  77. #endif // ADDNORMALITEM_H