calendarnav.cpp 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. #include "calendarnav.h"
  2. #include "PaintHelper/painthelper.h"
  3. #include "ui_calendarnav.h"
  4. #include "StyleManager/lhstylemanager.h"
  5. #include <QDebug>
  6. #include <QFile>
  7. //#pragma execution_character_set("utf-8")
  8. CalendarNav::CalendarNav(QCalendarWidget *pCalendar, QWidget *parent)
  9. : QWidget(parent)
  10. , ui(new Ui::CalendarNav)
  11. , m_pCalendar(pCalendar)
  12. {
  13. ui->setupUi(this);
  14. /* 加载qss */
  15. QFile file = QString(":/Calendar/CalendarNav.qss");
  16. if(!file.open(QIODevice::ReadOnly))
  17. {
  18. qDebug() << "CalendarNav.cpp:QSS打开失败";
  19. }
  20. QString ss = file.readAll();
  21. this->setStyleSheet(ss);
  22. connect(ui->btnPrevYear, &QPushButton::clicked, m_pCalendar, &QCalendarWidget::showPreviousYear);
  23. connect(ui->btnPrevMonth, &QPushButton::clicked, m_pCalendar, &QCalendarWidget::showPreviousMonth);
  24. connect(ui->btnNextMonth, &QPushButton::clicked, m_pCalendar, &QCalendarWidget::showNextMonth);
  25. connect(ui->btnNextYear, &QPushButton::clicked, m_pCalendar, &QCalendarWidget::showNextYear);
  26. connect(m_pCalendar, &QCalendarWidget::currentPageChanged, this, &CalendarNav::SetYearMonth);
  27. //默认显示当天, QCalendarWidget的默认选中日期也是当天
  28. SetYearMonth(QDate::currentDate().year(), QDate::currentDate().month());
  29. LHStyleManager::Instance()->AddWidget(this);
  30. }
  31. CalendarNav::~CalendarNav()
  32. {
  33. delete ui;
  34. }
  35. void CalendarNav::hidePreYear(bool flag)
  36. {
  37. ui->btnPrevYear->setVisible(!flag);
  38. }
  39. void CalendarNav::hidePreMonth(bool flag)
  40. {
  41. ui->btnPrevMonth->setVisible(!flag);
  42. }
  43. void CalendarNav::hideNextYear(bool flag)
  44. {
  45. ui->btnNextYear->setVisible(!flag);
  46. }
  47. void CalendarNav::hideNextMonth(bool flag)
  48. {
  49. ui->btnNextMonth->setVisible(!flag);
  50. }
  51. void CalendarNav::SetYearMonth(int year, int month)
  52. {
  53. ui->labelYearMonth->setText(QString("%1 年 %2 月").arg(year).arg(month));
  54. }