代码补充只显示修改部分:要求用户选择模式后点击Lights界面数据同时被更新#ifndef USERSWIDGET_H#define USERSWIDGET_H#include QWidgetnamespace Ui class UsersWidget;class UsersWidget public QWidget Q_OBJECTpublic explicit UsersWidg
以下是代码补充部分:
#include "userswidget.h"
#include "lights.h"
void UsersWidget::on_modeComboBox_currentIndexChanged(const QString &mode)
{
if (mode == "睡眠模式") {
updateSmartHomeStatus(userid, "智能灯", "开启", "20");
updateSmartHomeStatus(userid, "空调", "开启", "27");
updateSmartHomeStatus(userid, "加湿器", "开启", "50");
updateSmartHomeStatus(userid, "窗帘", "开启", "100");
// 更新Lights界面的数据
QList<Lights*> lights = findChildren<Lights*>();
for (Lights* light : lights) {
light->loadLastStatus();
}
} else if (mode == "日常模式") {
updateSmartHomeStatus(userid, "智能灯", "开启", "80");
updateSmartHomeStatus(userid, "空调", "开启", "25");
updateSmartHomeStatus(userid, "加湿器", "开启", "60");
updateSmartHomeStatus(userid, "窗帘", "开启", "50");
// 更新Lights界面的数据
QList<Lights*> lights = findChildren<Lights*>();
for (Lights* light : lights) {
light->loadLastStatus();
}
} else if (mode == "节能模式") {
updateSmartHomeStatus(userid, "智能灯", "开启", "50");
updateSmartHomeStatus(userid, "空调", "开启", "26");
updateSmartHomeStatus(userid, "加湿器", "开启", "40");
updateSmartHomeStatus(userid, "窗帘", "开启", "30");
// 更新Lights界面的数据
QList<Lights*> lights = findChildren<Lights*>();
for (Lights* light : lights) {
light->loadLastStatus();
}
}
}
在UsersWidget类中,当用户选择不同的模式时,更新数据库中的数据后,需要找到所有的Lights界面并调用loadLastStatus函数来更新界面数据。使用findChildren函数可以找到所有子对象中类型为Lights的对象,并进行遍历操作。
原文地址: https://www.cveoy.top/t/topic/izCS 著作权归作者所有。请勿转载和采集!