代码修改只显示修改部分:要求存入数据库时如果device_state为关闭时value值为0#include lightsh#include ui_lightsh#include switchformh#include sqliteh#include QSqlQuery#include QSqlDatabase#include QSqlError#include QCloseEvent#inclu
修改部分如下:
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);
}
}
原文地址: https://www.cveoy.top/t/topic/izpT 著作权归作者所有。请勿转载和采集!