Qt智能家居系统:实时更新界面数据
#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/fBaJ 著作权归作者所有。请勿转载和采集!