天天看點

Qt6-網絡關機助手(開機自啟版)新增定時關機功能

接上一個版本,這個版本中新增了定時關機功能。同時已更換成了公司的LOGO,如下圖所示

Qt6-網絡關機助手(開機自啟版)新增定時關機功能
下面分享一下主要核心代碼

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);
}      

這樣就可以完成了

繼續閱讀