代码补充:用户选择模式后,Lights 页面更新数据库最新信息
以下是补充的代码部分:
在 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 页面更新数据库最新信息,并加载最新的状态显示在界面上。
原文地址: https://www.cveoy.top/t/topic/fBbM 著作权归作者所有。请勿转载和采集!