修改部分如下:

void Lights::loadLastStatus()
{
    qDebug()<<this->userid;
    QString state = getLastState(this->userid);
    QString brightness = getLastBrightness(this->userid);
    qDebug()<<brightness;
    if (state == "开启")
    {
        ui->SwitchStatus->setChecked(true);
        ui->ctrlform->setValue(brightness.toInt());
    }
    else
    {
        ui->SwitchStatus->setChecked(false);
        ui->ctrlform->setValue(0);
    }
    qDebug()<<brightness.toInt();

    // 如果界面上显示开启状态,但存入数据库的设备状态为关闭,则更新数据库中的状态为开启
    if (ui->SwitchStatus->checked() && state == "关闭") {
        updateSmartHomeStatus(userid, QString("智能灯"), QString("开启"), brightness);
    }
    // 如果界面上显示关闭状态,但存入数据库的设备状态为开启,则更新数据库中的状态为关闭
    else if (!ui->SwitchStatus->checked() && state == "开启") {
        updateSmartHomeStatus(userid, QString("智能灯"), QString("关闭"), QString("0"));
    }
}

void Lights::saveLastStatus()
{
    qDebug()<<this->userid;
    QString state = ui->SwitchStatus->checked() ? "开启" : "关闭";
    QString brightness = QString::number(ui->ctrlform->getValue());
    updateLastBrightness(this->userid, brightness);

    // 如果界面上显示关闭状态,但存入数据库的设备状态为开启,则更新数据库中的状态为关闭
    if (!ui->SwitchStatus->checked() && state == "开启") {
        updateSmartHomeStatus(userid, QString("智能灯"), QString("关闭"), QString("0"));
    }
    // 如果界面上显示开启状态,但存入数据库的设备状态为关闭,则更新数据库中的状态为开启
    else if (ui->SwitchStatus->checked() && state == "关闭") {
        updateSmartHomeStatus(userid, QString("智能灯"), QString("开启"), brightness);
    }
}
代码修改只显示修改部分:要求存入数据库时如果device_state为关闭时value值为0#include lightsh#include ui_lightsh#include switchformh#include sqliteh#include QSqlQuery#include QSqlDatabase#include QSqlError#include QCloseEvent#inclu

原文地址: https://www.cveoy.top/t/topic/izpT 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录