#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的对象,并进行遍历操作。

Qt智能家居系统:实时更新界面数据

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

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