addspecialitem.h 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  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. class OneShadow;
  15. namespace Ui {
  16. class AddSpecialItem;
  17. }
  18. class AddSpecialItem : public QDialog
  19. {
  20. Q_OBJECT
  21. public:
  22. explicit AddSpecialItem(QWidget *parent = nullptr);
  23. ~AddSpecialItem();
  24. /* 设置父指针,时间选择器需要使用 */
  25. void setParentPointer(QWidget* p);
  26. /* 添加可选设备 */
  27. void setDevice(QMap<QString, DeviceInfo>& mapDev);
  28. /* 设置周几 */
  29. void setWeekDay(int week);
  30. /* 获取设别名称 */
  31. QString getDevName() const { return m_devName; }
  32. /* 获取动作 */
  33. QString getAction() const { return m_action; }
  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. private:
  55. /* 设置选择框报警 */
  56. void setComboBoxWarning(QComboBox* bo,bool flag);
  57. /* 设置时间报警 */
  58. void setTimeEditWarning(bool flag);
  59. void setAction(const QString& devName);
  60. protected:
  61. /* 事件过滤器 */
  62. bool eventFilter(QObject *watched, QEvent *event) override;
  63. /* 绘画事件 */
  64. void paintEvent(QPaintEvent *event) override;
  65. private:
  66. Ui::AddSpecialItem *ui;
  67. QWidget* m_parent = nullptr; /* 父类指针 */
  68. QRect m_rectScreen; /* 屏幕大小 */
  69. int m_week = -1; /* 周几 */
  70. bool m_isAddDev = false; /* 是否添加设备 */
  71. QString m_devName; /* 选择的设备 */
  72. QString m_action; /* 选择的动作 */
  73. QTime m_time; /* 执行的时间 */
  74. QDate m_date; /* 执行的日期 */
  75. TimeWidget* m_timeWidget = nullptr; /* 时间选择器 */
  76. OneShadow* m_shadow = nullptr; /* 阴影 */
  77. };
  78. #endif // ADDSPECIALITEM_H