123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596 |
- #ifndef PLANCARD_H
- #define PLANCARD_H
- #include <QWidget>
- #include <QStandardItemModel>
- #include <QSortFilterProxyModel>
- #include "TransmitterSwitchInfo.h"
- namespace Ui {
- class PlanCard;
- }
- /**
- * @brief 用户枚举值
- *
- */
- enum QtUserRole
- {
- UserRole_WeekDay = Qt::UserRole + 1, /* 周几 */
- UserRole_Time, /* 时间 */
- UserRole_OnOff /* 开关机 */
- };
- /**
- * @brief 自定义排序类
- *
- */
- class CSortModel : public QSortFilterProxyModel
- {
- Q_OBJECT
- public:
- explicit CSortModel(QObject *parent = nullptr) : QSortFilterProxyModel(parent) {}
- ~CSortModel() {}
- protected:
- /* 重载比较函数 */
- bool lessThan(const QModelIndex &left, const QModelIndex &right) const override;
- };
- class PlanCard : public QWidget
- {
- Q_OBJECT
- public:
- explicit PlanCard(QWidget *parent = nullptr);
- ~PlanCard();
- /* 设置频率信息 */
- void setChannelInfo(const ChannelInfo& info);
- /* 获取频率信息 */
- ChannelInfo& getChannelInfo() { return m_channelInfo; }
- /* 添加一项,这里的一项是开机和关机单独的一个时间 */
- void addPlanItem(const enum_WeekDay weekDay, const QDateTime& time, const enum_OnOff onOff);
- /* 删除一项 */
- void deletePlanItem(const enum_WeekDay weekDay, const QDateTime& time, const enum_OnOff onOff);
- /* 取出所有的计划信息 */
- void getAllPlanInfo(QList<ExecPlanItemInfo>& list);
- /* 设置计划列表 */
- void setPlanList(const QList<ExecPlanItemInfo>& list);
- private slots:
- /* 更改UI外观 */
- void do_setUIStyle();
- private:
- /* 设置空白图片和文字的位置 */
- void setSpaceImageAndTextRect();
- protected:
- /* 绘制事件 */
- void paintEvent(QPaintEvent *event) override;
- /* 大小缩放事件 */
- void resizeEvent(QResizeEvent *event) override;
- /* 显示事件 */
- void showEvent(QShowEvent *event) override;
- private:
- Ui::PlanCard *ui;
- ChannelInfo m_channelInfo; /* 频率信息 */
- QStandardItemModel* m_model; /* 表格模型,存储数据 */
- CSortModel* m_sortModel; /* 排序模型 */
- bool m_isSpace = true; /* 计划是否为空 */
- QRect m_rectSpaceImage; /* 空白图片的矩形区域 */
- QRect m_rectSpaceText; /* 空白文字的矩形区域 */
- QPixmap m_spaceImage; /* 空白图片 */
- };
- #endif // PLANCARD_H
|