接上一个版本,这个版本中新增了定时关机功能。同时已更换成了公司的LOGO,如下图所示
下面分享一下主要核心代码
void MainWindow::readConfig() { QString curPath = QCoreApplication::applicationDirPath(); curPath.append("/CONFIG.ini"); QSettings *config = new QSettings(curPath,QSettings::IniFormat); ui->timeEdit_off->setTime(QTime(config->value("TimerOff/HH").toInt(),config->value("TimerOff/MM").toInt(),0,0)); if(config->value("TimerOff/FLAG").toInt()) { ui->checkBox_isTimerOff->setChecked(true); } }
首先需要有读取配置文件功能,定时关机的功能开关机时间都保存在本地的config文件中,每次程序启动都去读取文件
其次要有写入功能,每次修改时间后,可以回写到config文件中,这里有两部分,一种是功能开关了,一种就是自动执行了
如下
void MainWindow::on_checkBox_isTimerOff_clicked(bool checked) { QString curPath = QCoreApplication::applicationDirPath(); curPath.append("/CONFIG.ini"); QSettings *config = new QSettings(curPath,QSettings::IniFormat); if(checked) { config->setValue("TimerOff/FLAG",1); config->setValue("TimerOff/HH",ui->timeEdit_off->time().hour()); config->setValue("TimerOff/MM",ui->timeEdit_off->time().minute()); } else config->setValue("TimerOff/FLAG",0); }
执行就是在获取时间函数里面更新,这里等于重写了上个版本中的获取时间函数,如下
QString MainWindow::getTime(QString format) { QTime mTime = QTime::currentTime(); if(ui->checkBox_isTimerOff->isChecked()) if(mTime.hour() == mTimeOff.hour() && mTime.minute() == mTimeOff.minute()) { ui->checkBox_isTimerOff->setChecked(false); QSettings *config = new QSettings("CONFIG.ini",QSettings::IniFormat); config->setValue("TimerOff/HH",mTime.hour()); config->setValue("TimerOff/MM",mTime.minute()); sentConmad(); } return mTime.toString(format); }
这样就可以完成了