#ifndef SCHEDULESHIFTSEDITOR_H #define SCHEDULESHIFTSEDITOR_H #include #include #include #include #include "PicScheduleShiftItem.h" #include "ItemGeneralSettings.h" namespace Ui { class ScheduleShiftsEditor; } /** * @brief 重写实现以实现一个自定义的QTimeEdit组件,用于选择时间时,点击时间选择器的部分时,能够选中所选的部分,而不仅仅是移动光标 */ class SelectedStyleTimeEdit : public QTimeEdit { Q_OBJECT public: SelectedStyleTimeEdit(QWidget *parent = nullptr); virtual ~SelectedStyleTimeEdit(); protected: bool eventFilter(QObject *obj, QEvent *event) override; }; class ScheduleShiftsEditor : public QWidget { Q_OBJECT public: explicit ScheduleShiftsEditor(QWidget *parent = nullptr); ~ScheduleShiftsEditor(); void setItemModel(QVector schedulesModel, TextItemModel txtModel); TextItemModel textItemModel(); const QVector& scheduleModel() const; signals: void accepted(); void rejected(); private slots: void onBtnOkClicked(); void onBtnCloseClicked(); void onBtnAddClicked(); void onBtnRemoveClicked(); void onTableSelectionChanged(); void btnAddEnbCheck(const QString& txt); private: void applyDataModel(); void applyStyleSheet(); Ui::ScheduleShiftsEditor *ui; QVector m_dataModel; ItemGeneralSettings* m_generalSettings = nullptr; }; #endif // SCHEDULESHIFTSEDITOR_H