calendarnav.cpp 2.6 KB

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