transmitterswitch.h 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. #ifndef TRANSMITTERSWITCH_H
  2. #define TRANSMITTERSWITCH_H
  3. #include <QWidget>
  4. #include <QVector>
  5. #include <QPushButton>
  6. #include <QLabel>
  7. class WidgetItems;
  8. class FromWebAPI;
  9. namespace Ui {
  10. class TransmitterSwitch;
  11. }
  12. class TransmitterSwitch : public QWidget
  13. {
  14. Q_OBJECT
  15. public:
  16. explicit TransmitterSwitch(QWidget *parent = nullptr);
  17. ~TransmitterSwitch();
  18. /* 设置样式表 */
  19. void setQSS(const QString &qssPath);
  20. /* 设置WebAPI信息 */
  21. void setWebAPIInfo(const QString &url, const QString &serverID, const QString &serverKey);
  22. private slots:
  23. /* 每周几的按钮点击了,设置stackedWidegt页面 */
  24. void do_weekpBtn_clicked();
  25. /* 点击了添加计划按钮 */
  26. void do_pBtnAddExecPlan();
  27. /* 删除一项正常日计划 */
  28. void do_deleteOneItem(int week, int index);
  29. /* 一个计划修改了设备 */
  30. void do_changeDev();
  31. /* 点击修改执行时间 */
  32. void do_editExecTime(QTime t);
  33. /* 导入数据 */
  34. void do_importData();
  35. private:
  36. /* 创建一周8天的item页面 */
  37. void createWeekWidget();
  38. /* 添加一个正常日的计划 */
  39. void addNormalOneItem(int week, QString devName, QString action, QTime execTime);
  40. /* 添加一项特殊日计划 */
  41. void addSpecialOneItem(int week, QString devName, QString action, QDate date, QTime execTime);
  42. /* 重新排序布局 */
  43. void sortLayout(int weekDay);
  44. /* 排序正常日 */
  45. void sortNormalDayData(int weekDay);
  46. /* 排序特殊日 */
  47. void sortSpecialDayData();
  48. /* 重新布局项 */
  49. void sortLayoutUI(int weekDay);
  50. protected:
  51. /* 事件过滤器 */
  52. bool eventFilter(QObject *watched, QEvent *event);
  53. private:
  54. Ui::TransmitterSwitch *ui;
  55. QLabel* m_tipText = nullptr; /* 提示文本 */
  56. QString m_styleSheet; /* 样式表 */
  57. QVector<QPushButton*> m_vecWeeks; /* 存储一周8天的按钮指针,方便后续操作 */
  58. QVector<WidgetItems*> m_vecWidgetItems; /* 存储每周8天的item页面 */
  59. QVector<QLayout*> m_vecLayouts; /* 存储每周8天的layout,item都添加到这里面 */
  60. FromWebAPI* m_fromWebAPI = nullptr; /* WebAPI操作类 */
  61. };
  62. #endif // TRANSMITTERSWITCH_H