以下是补充的代码部分:

lights.cpp 中的 loadLastStatus() 函数中添加以下代码:

// 获取最新的状态信息
QString state = getLastState(this->userid);
QString brightness = getLastBrightness(this->userid);

// 更新界面上的状态和亮度
ui->SwitchStatus->setChecked(state == "开启");
ui->ctrlform->setValue(brightness.toInt());

lights.cpp 中的 saveLastStatus() 函数中添加以下代码:

// 获取当前的亮度
QString brightness = QString::number(ui->ctrlform->getValue());

// 更新数据库中的状态和亮度
updateSmartHomeStatus(userid, QString("智能灯"), ui->SwitchStatus->checked() ? QString("开启") : QString("关闭"), brightness);

lights.cpp 中的 switchButton_status() 函数中添加以下代码:

// 更新界面上的亮度控制组件的状态
ui->ctrlform->setEnabled(checked);

userswidget.cpp 中的 on_modeComboBox_currentIndexChanged() 函数中添加以下代码:

// 发送信号通知 Lights 页面更新数据库最新信息
emit modeChanged(QString::number(mode));

userswidget.h 中添加以下代码:

public slots:
    void updateLightsStatus(); // 添加槽函数

signals:
    void modeChanged(const QString &mode); // 添加信号

userswidget.cpp 中的构造函数中添加以下代码:

// 连接信号和槽函数
connect(this, &UsersWidget::modeChanged, ui->lights, &Lights::updateLightsStatus);

lights.h 中添加以下代码:

public slots:
    void updateLightsStatus(); // 添加槽函数

lights.cpp 中添加以下代码:

void Lights::updateLightsStatus()
{
    // 加载最新的状态
    loadLastStatus();
}

这样,当用户在 UsersWidget 页面选择模式后,点击 Lights 界面时,会发送信号通知 Lights 页面更新数据库最新信息,并加载最新的状态显示在界面上。

代码补充:用户选择模式后,Lights 页面更新数据库最新信息

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

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