#include "onedetectplan.h" #include "ui_onedetectplan.h" #include "timewidget.h" #include "customcombobox.h" #include "GlobalVariable.h" OneDetectPlan::OneDetectPlan(QWidget *parent) : QWidget(parent), ui(new Ui::OneDetectPlan) { ui->setupUi(this); /* 设置下拉框阴影 */ ui->comboBox->setViewShadowEffect(); /* 设置时间框默认时间 */ // ui->timeEdit_start->setDefaultStyle(); // ui->timeEdit_end->setDefaultStyle(); ui->timeEdit_start->setTime(QTime(0, 0, 0)); ui->timeEdit_end->setTime(QTime(23, 59, 59)); /* 禁用comboBox滚动修改 */ ui->comboBox->setWheelDisabled(true); /* 禁用QTimeEdit滚轮编辑 */ ui->timeEdit_start->setWheelDisabled(true); ui->timeEdit_end->setWheelDisabled(true); ui->timeEdit_start->SetMainWindow(parent->window()); ui->timeEdit_end->SetMainWindow(parent->window()); /* 禁止使用时间图标清空时间 */ ui->timeEdit_start->setDisableClear(true); ui->timeEdit_end->setDisableClear(true); /* 给下拉框设置可选项 */ for(auto it = MapWeekTypeToString.begin(); it != MapWeekTypeToString.end(); ++it) { if(it.key() == eWeekType::Week_Special) { continue; // 跳过特殊日 } ui->comboBox->addItem(it.value(), QVariant::fromValue(it.key())); } /* 连接信号和槽 */ connect(ui->timeEdit_start, &TimeWidget::signal_formerTimer, this, &OneDetectPlan::do_formerTime); connect(ui->timeEdit_start, &TimeWidget::signal_nowTime, this, &OneDetectPlan::do_afterTime); connect(ui->pBtn_close, &QPushButton::clicked, this, &OneDetectPlan::signal_oneDetectPlanCloseClicked); } OneDetectPlan::~OneDetectPlan() { delete ui; } /* 设置QSS */ void OneDetectPlan::setQSS(const QString &qss) { if(qss.isEmpty()) { return; } /* 设置QSS */ this->setStyleSheet(qss); } /* 设置计划 */ void OneDetectPlan::setPlan(const OnePlan_t &plan) { m_plan = plan; /* 设置周几 */ ui->comboBox->setCurrentText(MapWeekTypeToString.value(plan.weekType)); /* 设置日期 */ ui->timeEdit_start->setTime(plan.timeStart); ui->timeEdit_end->setTime(plan.timeEnd); } /* 获取计划 */ OnePlan_t OneDetectPlan::getPlan() { /* 更新计划 */ m_plan.weekType = ui->comboBox->currentData().value(); m_plan.timeStart = ui->timeEdit_start->getTime(); m_plan.timeEnd = ui->timeEdit_end->getTime(); return m_plan; } /* 修改前的时间 */ void OneDetectPlan::do_formerTime(const QTime &time) { if(sender() == ui->timeEdit_start) { m_startFormerTime = time; } else if(sender() == ui->timeEdit_end) { m_endFormerTime = time; } } /* 修改后的计划时间 */ void OneDetectPlan::do_afterTime(const QTime &time) { OnePlan_t formerPlan = m_plan; getPlan(); // 更新计划 emit signal_planModified(formerPlan, m_plan); }