#ifndef PLANCARD_H #define PLANCARD_H #include #include #include #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 getAllPlanInfo(QList& list); /* 设置计划列表 */ void setPlanList(const QList& list); private slots: /* 更改UI外观 */ void do_setUIStyle(); private: Ui::PlanCard *ui; ChannelInfo m_channelInfo; /* 频率信息 */ QStandardItemModel* m_model; /* 表格模型,存储数据 */ CSortModel* m_sortModel; /* 排序模型 */ }; #endif // PLANCARD_H