#include "date_time_widget.h"
#include "ui_date_time_widget.h"
#include "Widgets/DateTimeEdit/button_day.h"
#include <QDateTime>
#include <QDate>
#include <QMenu>
DateTimeWidget::DateTimeWidget(QWidget* parent) : QWidget(parent), ui(new Ui::DateTimeWidget),
m_rangeSelect(false)
{
ui->setupUi(this);
initPage();
}
DateTimeWidget::~DateTimeWidget()
{
delete ui;
}
void DateTimeWidget::setDate(const QDate &date1)
{
m_date1 = date1;
}
void DateTimeWidget::initPage()
{
#if SUPPORT_C11
#else
DateTime::MapInsert::initMonth();
#endif
setWindowFlags(Qt::FramelessWindowHint | Qt::SubWindow);
auto pMenu = new QMenu(this);
pMenu->setProperty("type", "month");
ui->btnMonth->setMenu(pMenu);
for (auto itor = DateTime::month().begin(); itor != DateTime::month().end(); ++itor)
{
auto pMonth = pMenu->addAction(itor.value(), this, [this]
{
auto const pAction = qobject_cast<QAction*>(sender());
if (Q_NULLPTR == pAction)
{
return;
}
ui->btnMonth->setText(pAction->text());
ui->btnMonth->setData(DateTime::month().key(pAction->text()));
// updateDays(ui->dateEdit->date().day());
});
pMonth->setData(itor.key());
}
// day widget
for (int index = 0; index < 42; ++index)
{
auto btn = new ButtonDay(index + 1);
btn->setFixedSize(QSize(30, 30));
ui->gridLayout->addWidget(btn, index / 7, index % 7);
btn->setType(((index % 7 == 0) || (index % 7 == 6)) ? DateTime::WEEKEND : DateTime::WORKDAY);
btn->setRole(DateTime::CURRENT_MONTH);
m_dayList.append(QVariant::fromValue(static_cast<void*>(btn)));
connect(btn, &QPushButton::clicked, this, [this]
{
for (const auto& pbt : m_dayList)
{
auto pb = static_cast<ButtonDay*>(pbt.value<void*>());
if (Q_NULLPTR == pb)
{
continue;
}
// if (pb->role().testFlag(DateTime::SELECT_DAY))
// {
// pb->setRole(DateTime::CURRENT_MONTH);
// break;
// }
}
auto const btn = qobject_cast<ButtonDay*>(sender());
btn->setRole(DateTime::SELECT_DAY);
if (btn->month().testFlag(DateTime::PREV_MONTH_DAY))
{
if (ui->btnMonth->data().toInt() == 1)
{
ui->btnMonth->setData(12);
ui->btnYear->setData(ui->btnYear->data().toInt() - 1);
ui->btnYear->setText(QString("%1年").arg(ui->btnYear->data().toInt()));
}
else
{
ui->btnMonth->setData(ui->btnMonth->data().toInt() - 1);
}
ui->btnMonth->setText(DateTime::month().value(ui->btnMonth->data().toInt()));
}
if (btn->month().testFlag(DateTime::NEXT_MONTH_DAY))
{
if (ui->btnMonth->data().toInt() == 12)
{
ui->btnMonth->setData(1);
ui->btnYear->setData(ui->btnYear->data().toInt() + 1);
ui->btnYear->setText(QString("%1年").arg(ui->btnYear->data().toInt()));
}
else
{
ui->btnMonth->setData(ui->btnMonth->data().toInt() + 1);
}
ui->btnMonth->setText(DateTime::month().value(ui->btnMonth->data().toInt()));
}
updateDays(btn->data().toInt());
});
}
// year widget
for (int index = 0; index < 20; ++index)
{
auto btn = new ButtonDay(index + 1);
btn->setFixedSize(QSize(60, 30));
ui->gridLayoutYears->addWidget(btn, index / 4, index % 4);
// btn->setData(ui->dateEdit->date().year() - 10 + index);
btn->setText(QString("%1年").arg(btn->data().toInt()));
btn->setRole(DateTime::OTHER);
m_yearList.append(QVariant::fromValue(static_cast<void*>(btn)));
connect(btn, &QPushButton::clicked, this, [this]
{
for (const auto& pbt : m_yearList)
{
auto pb = static_cast<ButtonDay*>(pbt.value<void*>());
if (Q_NULLPTR == pb)
{
continue;
}
if (pb->role().testFlag(DateTime::CURRENT_YEAR))
{
pb->setRole(DateTime::OTHER);
break;
}
}
auto const btn = qobject_cast<ButtonDay*>(sender());
btn->setRole(DateTime::CURRENT_YEAR);
ui->stackedWidget->setCurrentWidget(ui->wdgCalendar);
ui->btnYear->setData(btn->data());
ui->btnYear->setText(QString("%1年").arg(btn->data().toInt()));
// updateDays(ui->dateEdit->date().day());
ui->btnMonth->setVisible(true);
ui->btnPrev->setVisible(true);
ui->btnNext->setVisible(true);
ui->wdgConfirm->setVisible(true);
});
}
connect(ui->btnYear, &QPushButton::clicked, this, [this]
{
int index = 0;
for (const auto& pbt : m_yearList)
{
auto btn = static_cast<ButtonDay*>(pbt.value<void*>());
if (Q_NULLPTR == btn)
{
continue;
}
btn->setData(ui->btnYear->data().toInt() - 10 + index++);
btn->setText(QString("%1年").arg(btn->data().toInt()));
btn->setRole(ui->btnYear->data().toInt() == btn->data().toInt() ? DateTime::CURRENT_YEAR : DateTime::OTHER);
}
ui->stackedWidget->setCurrentWidget(ui->wdgYears);
ui->btnMonth->setVisible(false);
ui->btnPrev->setVisible(false);
ui->btnNext->setVisible(false);
ui->wdgConfirm->setVisible(false);
});
connect(ui->btnToday, &QPushButton::clicked, this, [this]
{
QDate dt = QDate::currentDate();
ui->btnMonth->setData(dt.month());
ui->btnYear->setData(dt.year());
ui->btnMonth->setText(DateTime::month().value(dt.month()));
ui->btnYear->setText(QString("%1年").arg(dt.year()));
updateDays(dt.day());
});
connect(ui->btnConfirm, &QPushButton::clicked, this, [this]
{
Q_EMIT signal_dateTime(m_date1);
Q_EMIT signal_cancel();
});
connect(ui->btnCancel, &QPushButton::clicked, this, [this]
{
emit signal_cancel();
});
connect(ui->btnPrev, &QPushButton::clicked, this, [this]
{
int _days = getFirstDay();
if (ui->btnMonth->data().toInt() == 1)
{
ui->btnMonth->setData(12);
ui->btnYear->setData(ui->btnYear->data().toInt() - 1);
ui->btnYear->setText(QString("%1年").arg(ui->btnYear->data().toInt()));
}
else
{
ui->btnMonth->setData(ui->btnMonth->data().toInt() - 1);
}
ui->btnMonth->setText(DateTime::month().value(ui->btnMonth->data().toInt()));
updateDays(_days);
});
connect(ui->btnNext, &QPushButton::clicked, this, [this]
{
int _days = getFirstDay();
if (ui->btnMonth->data().toInt() == 12)
{
ui->btnMonth->setData(1);
ui->btnYear->setData(ui->btnYear->data().toInt() + 1);
ui->btnYear->setText(QString("%1年").arg(ui->btnYear->data().toInt()));
}
else
{
ui->btnMonth->setData(ui->btnMonth->data().toInt() + 1);
}
ui->btnMonth->setText(DateTime::month().value(ui->btnMonth->data().toInt()));
updateDays(_days);
});
}
void DateTimeWidget::showEvent(QShowEvent *event)
{
ui->stackedWidget->setCurrentWidget(ui->wdgCalendar);
if(!ui->wdgConfirm->isVisible())
{
ui->btnMonth->setVisible(false);
ui->btnPrev->setVi
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
【资源说明】 1、该资源内项目代码都是经过测试运行成功,功能正常的情况下才上传的,请放心下载使用。 2、适用人群:主要针对计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、数学、电子信息等)的同学或企业员工下载使用,具有较高的学习借鉴价值。 3、不仅适合小白学习实战练习,也可作为大作业、课程设计、毕设项目、初期项目立项演示等,欢迎下载,互相学习,共同进步!
资源推荐
资源详情
资源评论
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![thumb](https://img-home.csdnimg.cn/images/20210720083646.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
收起资源包目录
![package](https://csdnimg.cn/release/downloadcmsfe/public/img/package.f3fc750b.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/JPG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/JPG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/JPG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/JPG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
共 84 条
- 1
资源评论
![avatar-default](https://csdnimg.cn/release/downloadcmsfe/public/img/lazyLogo2.1882d7f4.png)
![avatar](https://profile-avatar.csdnimg.cn/default.jpg!1)
龙年行大运
- 粉丝: 1011
- 资源: 3847
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![voice](https://csdnimg.cn/release/downloadcmsfe/public/img/voice.245cc511.png)
![center-task](https://csdnimg.cn/release/downloadcmsfe/public/img/center-task.c2eda91a.png)
安全验证
文档复制为VIP权益,开通VIP直接复制
![dialog-icon](https://csdnimg.cn/release/downloadcmsfe/public/img/green-success.6a4acb44.png)