calendarnav.cpp 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  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/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()
  54. {
  55. QString qssPath = QApplication::applicationDirPath();
  56. QString qssFile;
  57. if(LHStyleManager::Instance()->GetCurSkinStyle() == SkinStyle::eWhiteStyle)
  58. {
  59. qssFile = qssPath + "/white/calendarnav.qss";
  60. }else if(LHStyleManager::Instance()->GetCurSkinStyle() == SkinStyle::eBlackStyle)
  61. {
  62. qssFile = qssPath + "/black/calendarnav.qss";
  63. }
  64. QFile file(qssFile);
  65. if(file.open(QIODevice::ReadOnly))
  66. {
  67. QString stylesheet = file.readAll();
  68. this->setStyleSheet(stylesheet);
  69. file.close();
  70. } else
  71. {
  72. qDebug() << "打开文件失败:" << file.fileName();
  73. }
  74. }
  75. void CalendarNav::SetYearMonth(int year, int month)
  76. {
  77. ui->labelYearMonth->setText(QString("%1 年 %2 月").arg(year).arg(month));
  78. }