代码修改:智能灯开关和亮度状态同步

本文将介绍如何修改代码,实现智能灯开关和亮度状态与数据库同步,并展示了相关的代码片段。

Lights 类修改

Lights 类中,修改 loadLastStatus 函数和 saveLastStatus 函数:

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

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

SwitchForm 类修改

SwitchForm 类中,修改 setChecked 函数:

void SwitchForm::setChecked(bool checked)
{
    if (m_checked != checked) {
        m_checked = checked;
        
        // 修改滑块的X轴坐标
        m_startX = m_checked ? width() - m_space * 2 - 5 : m_space;
        
        // 更新界面
        update();
    }
}

修改说明

  • loadLastStatus 函数中,从数据库获取智能灯的最新状态和亮度值,并根据状态值设置开关组件和亮度调节组件的状态。
  • saveLastStatus 函数中,将当前开关组件和亮度调节组件的状态保存到数据库。
  • setChecked 函数中,根据开关组件的状态修改滑块的X轴坐标,从而实现滑块的移动动画。

总结

通过以上代码修改,实现了智能灯开关和亮度状态与数据库同步的功能,使用户界面和数据库中的状态信息保持一致。

代码修改:智能灯开关和亮度状态同步

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

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