fncalender.h 984 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. #ifndef FNCALENDER_H
  2. #define FNCALENDER_H
  3. #include <QWidget>
  4. #include <QDate>
  5. #include <QPainter>
  6. #include <QDebug>
  7. namespace Ui
  8. {
  9. class FnCalender;
  10. }
  11. struct FnCalenderData
  12. {
  13. int line;
  14. QRect rc;
  15. QDate date;
  16. bool isNull = false;
  17. };
  18. class FnCalender : public QWidget
  19. {
  20. Q_OBJECT
  21. public:
  22. explicit FnCalender(QWidget* parent = nullptr);
  23. ~FnCalender();
  24. void initData();
  25. QDate date() const;
  26. void setDate(const QDate& date);
  27. void changeDate();
  28. signals:
  29. void drawExtraInfo(QPainter& painter, FnCalenderData& data);
  30. protected:
  31. void paintEvent(QPaintEvent* event);
  32. void mouseMoveEvent(QMouseEvent* event);
  33. private slots:
  34. void on_btnPreMonth_clicked();
  35. void on_btnNextMonth_clicked();
  36. void on_cbbYear_currentIndexChanged(int index);
  37. void on_cbbMonth_currentIndexChanged(int index);
  38. private:
  39. Ui::FnCalender* ui;
  40. QDate m_date;
  41. bool m_hasInit;
  42. FnCalenderData m_dateDatas[42];
  43. };
  44. #endif // FNCALENDER_H