#include "frmconfigsystem.h" #include "ui_frmconfigsystem.h" #include "head.h" frmConfigSystem::frmConfigSystem(QWidget *parent) : QWidget(parent), ui(new Ui::frmConfigSystem) { ui->setupUi(this); this->initForm(); this->initConfig(); } frmConfigSystem::~frmConfigSystem() { delete ui; } void frmConfigSystem::showEvent(QShowEvent *) { this->initConfig(); QString now = QDateTime::currentDateTime().toString("yyyy 年-M 月-d 日-H 时-m 分-s 秒"); QStringList list = now.split("-"); ui->widgetYear->setCurrentValue(list.at(0)); ui->widgetMonth->setCurrentValue(list.at(1)); ui->widgetDay->setCurrentValue(list.at(2)); ui->widgetHour->setCurrentValue(list.at(3)); ui->widgetMin->setCurrentValue(list.at(4)); ui->widgetSec->setCurrentValue(list.at(5)); } void frmConfigSystem::initForm() { ui->txtTimeAlarm->setProperty("noinput", true); ui->txtTemp->setProperty("noinput", true); ui->txtVolumn->setProperty("noinput", true); ui->txtTimeClose->setProperty("noinput", true); int fixWidth = 120; int fixHeight = 50; if (AppConfig::MainHeight == 480) { fixWidth = 100; fixHeight = 40; this->layout()->setSpacing(10); this->layout()->setContentsMargins(20, 20, 20, 20); ui->widget->layout()->setSpacing(10); } ui->btnVolumnTip->setFixedSize(fixWidth, fixHeight); ui->btnLinkSnap->setFixedSize(fixWidth, fixHeight); ui->txtOSD->setFixedSize(fixWidth, fixHeight); ui->txtTemp->setFixedSize(fixWidth, fixHeight); ui->txtTimeAlarm->setFixedSize(fixWidth, fixHeight); ui->txtTimeClose->setFixedSize(fixWidth, fixHeight); ui->txtVolumn->setFixedSize(fixWidth, fixHeight); //绑定返回按钮按下返回到主界面 connect(ui->btnReturn, SIGNAL(clicked(bool)), this, SIGNAL(returnMain())); //绑定保存按钮保存配置参数 connect(ui->btnSave, SIGNAL(clicked(bool)), this, SLOT(saveConfig())); connect(ui->btnSave, SIGNAL(clicked(bool)), this, SLOT(saveTime())); //设置属性以便应用样式表 ui->widgetReturn->setProperty("flag", "return"); ui->btnVolumnTip->setChecked(true); ui->btnLinkSnap->setChecked(true); ui->txtTemp->setReadOnly(true); ui->txtTimeAlarm->setReadOnly(true); ui->txtTimeClose->setReadOnly(true); ui->txtVolumn->setReadOnly(true); //设置滑块样式 int sliderHeight = 30; ui->sliderTimeAlarm->setFixedHeight(sliderHeight); ui->sliderTemp->setFixedHeight(sliderHeight); ui->sliderVolumn->setFixedHeight(sliderHeight); ui->sliderTimeClose->setFixedHeight(sliderHeight); ui->sliderTimeAlarm->setRange(0, 3600); ui->sliderTemp->setRange(0, 100); ui->sliderVolumn->setRange(1, 6); ui->sliderTimeClose->setRange(1, 30); connect(ui->sliderTimeAlarm, SIGNAL(valueChanged(int)), this, SLOT(setTimeAlarm(int))); connect(ui->sliderTemp, SIGNAL(valueChanged(int)), this, SLOT(setTemp(int))); connect(ui->sliderVolumn, SIGNAL(valueChanged(int)), this, SLOT(setVolumn(int))); connect(ui->sliderTimeClose, SIGNAL(valueChanged(int)), this, SLOT(setTimeClose(int))); //设置日期时间滑动选择器 QStringList listValue; listValue.clear(); for (int i = 2016; i <= 2030; i++) { listValue.append(QString("%1 年").arg(i)); } ui->widgetYear->setListValue(listValue); listValue.clear(); for (int i = 1; i <= 12; i++) { listValue.append(QString("%1 月").arg(i)); } ui->widgetMonth->setListValue(listValue); listValue.clear(); for (int i = 1; i <= 31; i++) { listValue.append(QString("%1 日").arg(i)); } ui->widgetDay->setListValue(listValue); listValue.clear(); for (int i = 0; i <= 23; i++) { listValue.append(QString("%1 时").arg(i)); } ui->widgetHour->setListValue(listValue); listValue.clear(); for (int i = 0; i <= 59; i++) { listValue.append(QString("%1 分").arg(i)); } ui->widgetMin->setListValue(listValue); listValue.clear(); for (int i = 0; i <= 59; i++) { listValue.append(QString("%1 秒").arg(i)); } ui->widgetSec->setListValue(listValue); QColor widgetBg(16, 44, 56, 150); ui->widgetYear->setBackground(widgetBg); ui->widgetMonth->setBackground(widgetBg); ui->widgetDay->setBackground(widgetBg); ui->widgetHour->setBackground(widgetBg); ui->widgetMin->setBackground(widgetBg); ui->widgetSec->setBackground(widgetBg); QColor widgetText(229, 248, 242, 200); ui->widgetYear->setForeground(widgetText); ui->widgetMonth->setForeground(widgetText); ui->widgetDay->setForeground(widgetText); ui->widgetHour->setForeground(widgetText); ui->widgetMin->setForeground(widgetText); ui->widgetSec->setForeground(widgetText); } void frmConfigSystem::initConfig() { ui->btnVolumnTip->setChecked(AppConfig::VolumnTip); ui->btnLinkSnap->setChecked(AppConfig::LinkSnap); ui->sliderTimeAlarm->setValue(AppConfig::TimeAlarm); ui->sliderTemp->setValue(AppConfig::Temp); ui->sliderVolumn->setValue(AppConfig::Volumn); ui->sliderTimeClose->setValue(AppConfig::TimeClose); } void frmConfigSystem::saveConfig() { AppConfig::VolumnTip = ui->btnVolumnTip->getChecked(); AppConfig::LinkSnap = ui->btnLinkSnap->getChecked(); AppConfig::OSD = ui->txtOSD->text(); AppConfig::TimeAlarm = ui->sliderTimeAlarm->value(); AppConfig::Temp = ui->sliderTemp->value(); AppConfig::Volumn = ui->sliderVolumn->value(); AppConfig::TimeClose = ui->sliderTimeClose->value(); AppConfig::writeConfig(); } void frmConfigSystem::saveTime() { QString year = ui->widgetYear->getCurrentValue(); year = QString("%1").arg(year.left(4)); QString month = ui->widgetMonth->getCurrentValue(); month = QString("%1").arg(month.left(2).toInt(), 2, 10, QChar('0')); QString day = ui->widgetDay->getCurrentValue(); day = QString("%1").arg(day.left(2).toInt(), 2, 10, QChar('0')); QString hour = ui->widgetHour->getCurrentValue(); hour = QString("%1").arg(hour.left(2).toInt(), 2, 10, QChar('0')); QString min = ui->widgetMin->getCurrentValue(); min = QString("%1").arg(min.left(2).toInt(), 2, 10, QChar('0')); QString sec = ui->widgetSec->getCurrentValue(); sec = QString("%1").arg(sec.left(2).toInt(), 2, 10, QChar('0')); setSystemDateTime(year, month, day, hour, min, sec); } void frmConfigSystem::setSystemDateTime(const QString &year, const QString &month, const QString &day, const QString &hour, const QString &min, const QString &sec) { #ifdef Q_OS_WIN QProcess p(0); p.start("cmd"); p.waitForStarted(); p.write(QString("date %1-%2-%3\n").arg(year).arg(month).arg(day).toLatin1()); p.closeWriteChannel(); p.waitForFinished(1000); p.close(); p.start("cmd"); p.waitForStarted(); p.write(QString("time %1:%2:%3.00\n").arg(hour).arg(min).arg(sec).toLatin1()); p.closeWriteChannel(); p.waitForFinished(1000); p.close(); #else QString cmd = QString("date %1%2%3%4%5.%6").arg(month).arg(day).arg(hour).arg(min).arg(year).arg(sec); system(cmd.toLatin1()); system("hwclock -w"); #endif } void frmConfigSystem::setTimeAlarm(int value) { ui->txtTimeAlarm->setFocus(); ui->txtTimeAlarm->setText(QString("%1 秒").arg(value)); } void frmConfigSystem::setTemp(int value) { ui->txtTemp->setFocus(); ui->txtTemp->setText(QString("%1 ℃").arg(value)); } void frmConfigSystem::setVolumn(int value) { ui->txtVolumn->setFocus(); ui->txtVolumn->setText(QString("%1 分贝").arg(value)); } void frmConfigSystem::setTimeClose(int value) { ui->txtTimeClose->setFocus(); ui->txtTimeClose->setText(QString("%1 分钟").arg(value)); }