addspecialitem.h 3.3 KB

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