123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- #ifndef CALENDAREX_H
- #define CALENDAREX_H
- #include <QWidget>
- #include "calendarwidgetex.h"
- #include "DropShadow/idropshadowable.h"
- class QHBoxLayout;
- class CalendarInterface : public QWidget, public IDropShadowable
- {
- Q_OBJECT
- public:
- explicit CalendarInterface(QWidget *parent = nullptr);
- virtual ~CalendarInterface();
- /* 弹出位置? */
- void positionCalendarPopup(QWidget *q);
- protected:
- virtual void SetCalendarSync(const QDate &defaultDate) = 0;
- protected:
- QHBoxLayout* m_pLayout;
- const int SHADOW_RADIUS = 16;
- const int SPACING = 8;
- const int CALENDAR_WIDTH = 325;
- const int CALENDAR_HEIGHT = 350;
- };
- /**
- * @brief 带有阴影的日历
- *
- */
- class CalendarEx : public CalendarInterface
- {
- Q_OBJECT
- public:
- explicit CalendarEx(const QDate& defaultDate = QDate(), QWidget* parent = nullptr);
- virtual ~CalendarEx() {}
- signals:
- void sig_DateChanged(const QDate& date);
- private:
- virtual void SetCalendarSync(const QDate &defaultDate);
- private:
- CalendarWidgetEx *m_pCalendar;
- };
- class ScopedCalendar : public CalendarInterface
- {
- Q_OBJECT
- public:
- explicit ScopedCalendar(const QDate &from = QDate(), const QDate &to = QDate(), QWidget *parent = nullptr);
- virtual ~ScopedCalendar() { };
- void SetMinimumDate(const QDate &date);
- void SetMaximumDate(const QDate &date);
- signals:
- void sig_ScopeSelected(const QDate &from, const QDate &to);
- public slots:
- void OnScopeSelected(const QDate &from, const QDate &to);
- private:
- virtual void SetCalendarSync(const QDate &defaultDate);
- private:
- CalendarWidgetEx *m_pCalendar_L;
- CalendarWidgetEx *m_pCalendar_R;
- };
- #endif // CALENDAREX_H
|