calendarnav.cpp 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. #include "calendarnav.h"
  2. #include "PaintHelper/painthelper.h"
  3. #include "ui_calendarnav.h"
  4. #include <QDebug>
  5. #include <QFile>
  6. #include "spdlog/spdlog.h"
  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/qss/CalendarNav_light.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. setQSS();
  31. }
  32. CalendarNav::~CalendarNav()
  33. {
  34. delete ui;
  35. }
  36. void CalendarNav::hidePreYear(bool flag)
  37. {
  38. ui->btnPrevYear->setVisible(!flag);
  39. }
  40. void CalendarNav::hidePreMonth(bool flag)
  41. {
  42. ui->btnPrevMonth->setVisible(!flag);
  43. }
  44. void CalendarNav::hideNextYear(bool flag)
  45. {
  46. ui->btnNextYear->setVisible(!flag);
  47. }
  48. void CalendarNav::hideNextMonth(bool flag)
  49. {
  50. ui->btnNextMonth->setVisible(!flag);
  51. }
  52. /* 设置QSS */
  53. void CalendarNav::setQSS(int style)
  54. {
  55. QString qssFile;
  56. if(style == 0)
  57. {
  58. qssFile = ":/qss/CalendarNav_light.qss";
  59. }else if(style == 1)
  60. {
  61. qssFile = ":/qss/CalendarNav_dark.qss";
  62. }
  63. QFile file(qssFile);
  64. if(file.open(QIODevice::ReadOnly))
  65. {
  66. QString stylesheet = file.readAll();
  67. this->setStyleSheet(stylesheet);
  68. file.close();
  69. } else
  70. {
  71. SPDLOG_WARN("打开QSS文件失败: {}", qssFile.toStdString());
  72. }
  73. }
  74. void CalendarNav::SetYearMonth(int year, int month)
  75. {
  76. ui->labelYearMonth->setText(QString("%1 年 %2 月").arg(year).arg(month));
  77. }