addspecialitem.h 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  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. /* 获取时间 */
  34. QTime getTime() const { return m_time; }
  35. /* 获取日期 */
  36. QDate getDate() const { return m_date; }
  37. /* 判断是否添加设备 */
  38. bool isAddDev() const { return m_isAddDev; }
  39. /* 设置QSS */
  40. void setQSS(QString qssPath);
  41. signals:
  42. /* 添加特殊日期项 */
  43. void signal_AddSpecialItem(QString dev, QString action, QDate date, QTime time);
  44. private slots:
  45. /* 进行查重和关闭页面 */
  46. void do_ok();
  47. /* 选择了设备,设置其对应的动作 */
  48. void do_selectDev();
  49. /* 选择了动作 */
  50. void do_selectAction();
  51. /* 点击了时间选择按钮,打开时间选择器 */
  52. void do_selectTime();
  53. private:
  54. /* 设置选择框报警 */
  55. void setComboBoxWarning(QComboBox* bo,bool flag);
  56. /* 设置时间报警 */
  57. void setTimeEditWarning(bool flag);
  58. void setAction(const QString& devName);
  59. protected:
  60. /* 事件过滤器 */
  61. bool eventFilter(QObject *watched, QEvent *event) override;
  62. /* 绘画事件 */
  63. // void paintEvent(QPaintEvent *event) override;
  64. /* 鼠标点击事件 */
  65. void mousePressEvent(QMouseEvent *event) override;
  66. /* 鼠标移动事件 */
  67. void mouseMoveEvent(QMouseEvent *event) override;
  68. /* 鼠标释放事件 */
  69. void mouseReleaseEvent(QMouseEvent *event) override;
  70. private:
  71. Ui::AddSpecialItem *ui;
  72. QWidget* m_parent = nullptr; /* 父类指针 */
  73. QRect m_rectScreen; /* 屏幕大小 */
  74. int m_week = -1; /* 周几 */
  75. bool m_isAddDev = false; /* 是否添加设备 */
  76. QString m_devName; /* 选择的设备 */
  77. QString m_action; /* 选择的动作 */
  78. QTime m_time; /* 执行的时间 */
  79. QDate m_date; /* 执行的日期 */
  80. TimeWidget* m_timeWidget = nullptr; /* 时间选择器 */
  81. // OneShadow* m_shadow = nullptr; /* 阴影 */
  82. QPoint m_lastPos; /* 鼠标点击的位置 */
  83. };
  84. #endif // ADDSPECIALITEM_H