addnormalitem.h 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  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. /* 获取时间 */
  29. QTime getTime() const { return m_time; }
  30. /* 判断是否添加设备 */
  31. bool isAddDev() const { return m_isAddDev; }
  32. /* 设置QSS */
  33. void setQSS(const QString& qssPath);
  34. signals:
  35. /* 添加正常日期的项 */
  36. void signal_addNormalItem(QString dev,QString action,QTime time);
  37. private slots:
  38. /* 进行查重和关闭页面 */
  39. void do_ok();
  40. /* 选择了设备,设置其对应的动作 */
  41. void do_selectDev();
  42. /* 选择了动作 */
  43. void do_selectAction();
  44. /* 点击了时间选择按钮,打开时间选择器 */
  45. void do_selectTime();
  46. private:
  47. /* 设置选择框报警 */
  48. void setComboBoxWarning(QComboBox* bo,bool flag);
  49. /* 设置时间报警 */
  50. void setTimeEditWarning(bool flag);
  51. void setAction(const QString& devName);
  52. protected:
  53. /* 事件过滤器 */
  54. bool eventFilter(QObject *watched, QEvent *event) override;
  55. /* 绘画事件 */
  56. void paintEvent(QPaintEvent *event) override;
  57. private:
  58. Ui::AddNormalItem *ui;
  59. QWidget* m_parent = nullptr; /* 父类指针 */
  60. QRect m_rectScreen; /* 屏幕大小 */
  61. int m_week = -1; /* 周几 */
  62. bool m_isAddDev = false; /* 是否添加设备 */
  63. QString m_devName; /* 选择的设备 */
  64. QString m_action; /* 选择的动作 */
  65. QTime m_time; /* 执行的时间 */
  66. TimeWidget* m_timeWidget = nullptr; /* 时间选择器 */
  67. OneShadow* m_shadow = nullptr; /* 阴影 */
  68. };
  69. #endif // ADDNORMALITEM_H