123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113 |
- #ifndef TRANSMITTERSWITCH_H
- #define TRANSMITTERSWITCH_H
- #include <QWidget>
- #include <QVector>
- #include <QPushButton>
- #include <QLabel>
- class WidgetItems;
- class FromWebAPI;
- struct InitData;
- /* 回调函数 */
- using trackCallBack = void(*)(int actionID, QString strMemo);
- namespace Ui {
- class TransmitterSwitch;
- }
- class TransmitterSwitch : public QWidget
- {
- Q_OBJECT
- public:
- explicit TransmitterSwitch(QWidget *parent = nullptr);
- ~TransmitterSwitch();
- /* 设置样式表路径,给弹窗页面使用,不需要包含最后的white,black */
- void setQSSPath(const QString &qssPath);
- /* 设置WebAPI信息 */
- void setWebAPIInfo(const QString &url, const QString &serverID, const QString &serverKey);
- void setWebAPIInfo(const InitData& data);
- /* 获取EQM数据库中的计划 */
- void getExecPlanFromEQM();
- /* 将计划保存到EQM数据库 */
- void saveExecPlanToEQM();
- /* 亮/暗换肤,0是亮色,1是暗色 */
- void setUIStyle(int style);
- /* 设置回调函数 */
- void setTrackCallBack(trackCallBack cb);
- private slots:
- /* 每周几的按钮点击了,设置stackedWidegt页面 */
- void do_weekpBtn_clicked();
- /* 点击了添加计划按钮 */
- void do_pBtnAddExecPlan();
- /* 删除一项正常日计划 */
- void do_deleteOneItem(int week, int index);
- /* 一个计划修改了设备 */
- void do_changeDev();
- /* 点击修改执行时间 */
- void do_editExecTime(QTime t);
- /* 点击修改日期 */
- void do_editExecDate(QDate d);
- /* 修改了一个动作 */
- void do_editAction();
- /* 导入模板 */
- void do_importData();
- /* 保存为模板 */
- void do_exportData();
- /* 清空当前页计划 */
- void do_clearCurrentPage();
- /* 删除一个模板 */
- void do_deleteTemplate(QString name);
- /* 保存计划到EQM数据库 */
- void do_pBtn_savePlan();
- /* 从EQM数据库获取计划 */
- void do_pBtn_getPlan();
- /* 切换亮色/暗色外观 */
- void do_setUIStyle();
- private:
- /* 创建一周8天的item页面 */
- void createWeekWidget();
- /* 添加一个正常日的计划 */
- void addNormalOneItem(int week, QString devName, int actionID, QTime execTime);
- /* 添加一项特殊日计划 */
- void addSpecialOneItem(int week, QString devName, int actionID, QDate date, QTime execTime);
- /* 重新排序布局 */
- void sortLayout(int weekDay);
- /* 排序正常日 */
- void sortItemData(int weekDay);
- /* 重新布局项 */
- void sortLayoutUI(int weekDay);
- protected:
- /* 事件过滤器 */
- bool eventFilter(QObject *watched, QEvent *event);
- /* 鼠标点击事件 */
- // void mousePressEvent(QMouseEvent *event);
- private:
- Ui::TransmitterSwitch *ui;
- QLabel* m_tipText = nullptr; /* 提示文本 */
- QString m_styleSheet; /* 样式表 */
- QVector<QPushButton*> m_vecWeeks; /* 存储一周8天的按钮指针,方便后续操作 */
- QVector<WidgetItems*> m_vecWidgetItems; /* 存储每周8天的item页面 */
- QVector<QLayout*> m_vecLayouts; /* 存储每周8天的layout,item都添加到这里面 */
- FromWebAPI* m_fromWebAPI = nullptr; /* WebAPI操作类 */
- trackCallBack m_trackCB = nullptr; /* 回调函数 */
-
- };
- #endif // TRANSMITTERSWITCH_H
|