#include "calendarnav.h" #include "PaintHelper/painthelper.h" #include "ui_calendarnav.h" #include "StyleManager/lhstylemanager.h" #include #include //#pragma execution_character_set("utf-8") CalendarNav::CalendarNav(QCalendarWidget *pCalendar, QWidget *parent) : QWidget(parent) , ui(new Ui::CalendarNav) , m_pCalendar(pCalendar) { ui->setupUi(this); /* 加载qss */ QFile file = QString(":/Calendar/CalendarNav.qss"); if(!file.open(QIODevice::ReadOnly)) { qDebug() << "CalendarNav.cpp:QSS打开失败"; } QString ss = file.readAll(); this->setStyleSheet(ss); connect(ui->btnPrevYear, &QPushButton::clicked, m_pCalendar, &QCalendarWidget::showPreviousYear); connect(ui->btnPrevMonth, &QPushButton::clicked, m_pCalendar, &QCalendarWidget::showPreviousMonth); connect(ui->btnNextMonth, &QPushButton::clicked, m_pCalendar, &QCalendarWidget::showNextMonth); connect(ui->btnNextYear, &QPushButton::clicked, m_pCalendar, &QCalendarWidget::showNextYear); connect(m_pCalendar, &QCalendarWidget::currentPageChanged, this, &CalendarNav::SetYearMonth); //默认显示当天, QCalendarWidget的默认选中日期也是当天 SetYearMonth(QDate::currentDate().year(), QDate::currentDate().month()); LHStyleManager::Instance()->AddWidget(this); } CalendarNav::~CalendarNav() { delete ui; } void CalendarNav::hidePreYear(bool flag) { ui->btnPrevYear->setVisible(!flag); } void CalendarNav::hidePreMonth(bool flag) { ui->btnPrevMonth->setVisible(!flag); } void CalendarNav::hideNextYear(bool flag) { ui->btnNextYear->setVisible(!flag); } void CalendarNav::hideNextMonth(bool flag) { ui->btnNextMonth->setVisible(!flag); } void CalendarNav::SetYearMonth(int year, int month) { ui->labelYearMonth->setText(QString("%1 年 %2 月").arg(year).arg(month)); }