智能家居代码修改:只显示修改部分 - 优化用户模式与灯光控制交互
以下是修改后的代码,只显示修改部分:/n/n## userswidget.h/ncpp/n#ifndef USERSWIDGET_H/n#define USERSWIDGET_H/n/n#include <QWidget>/n/nnamespace Ui {/nclass UsersWidget;/n}/n/nclass UsersWidget : public QWidget/n{/n Q_OBJECT/n/npublic:/n explicit UsersWidget(int userid, QWidget *parent = nullptr);/n ~UsersWidget();/n void displayUsersWidget();/n/nsignals:/n void modeChanged(const QString &mode); // 添加信号/n/nprotected:/n void closeEvent(QCloseEvent *);/n/nprivate slots:/n void on_modeComboBox_currentIndexChanged(const QString &mode);/n/nprivate:/n Ui::UsersWidget *ui;/n int userid;/n};/n/n#endif // USERSWIDGET_H/n/n/n## userswidget.cpp/ncpp/n#include /'userswidget.h/'/n#include /'ui_userswidget.h/'/n#include /'sqlite.h/'/n#include /'lights.h/'/n#include /'QCloseEvent/'/n#include /'QMessageBox/'/n/nUsersWidget::UsersWidget(int userid, QWidget *parent) :/n QWidget(parent),/n ui(new Ui::UsersWidget),/n userid(userid)/n{/n ui->setupUi(this);/n displayUsersWidget();/n connect(ui->lights, &QToolButton::clicked, this, [=]{/n Lights *w = new Lights(userid);/n w->show();/n });/n connect(ui->modeComboBox, QOverload<const QString&>::of(&QComboBox::currentIndexChanged), this, [this](const QString& mode){/n on_modeComboBox_currentIndexChanged(mode);/n });/n}/n/nUsersWidget::~UsersWidget()/n{/n delete ui;/n}/n/nvoid UsersWidget::displayUsersWidget()/n{/n setWindowTitle(/'智能家居总览图/');/n setFixedSize(900, 600);/n}/n/nvoid UsersWidget::on_modeComboBox_currentIndexChanged(const QString &mode)/n{/n if (mode == /'睡眠模式/') {/n updateSmartHomeStatus(userid, /'智能灯/', /'开启/', /'20/');/n } else if (mode == /'日常模式/') {/n updateSmartHomeStatus(userid, /'智能灯/', /'开启/', /'80/');/n } else if (mode == /'节能模式/') {/n updateSmartHomeStatus(userid, /'智能灯/', /'开启/', /'50/');/n }/n emit modeChanged(mode); // 发送信号/n}/n/nvoid UsersWidget::closeEvent(QCloseEvent *e)/n{/n if (e->spontaneous()) {/n QMessageBox::StandardButton reply;/n reply = QMessageBox::information(this, /'提示/', /'确认退出智能管家系统?/', QMessageBox::Yes|QMessageBox::No);/n if (reply == QMessageBox::Yes) {/n e->accept();/n } else {/n e->ignore();/n }/n }/n}/n/n/n## lights.h/ncpp/n#ifndef LIGHTS_H/n#define LIGHTS_H/n/n#include <QWidget>/n/nnamespace Ui {/nclass Lights;/n}/n/nclass Lights : public QWidget/n{/n Q_OBJECT/n/npublic:/n explicit Lights(int userid, QWidget *parent = nullptr);/n ~Lights();/n void lightsWidget();/n bool flag = false;/n/n void showEvent(QShowEvent *event);/n void hideEvent(QHideEvent *event);/n/n void loadLastStatus();/n void saveLastStatus();/n/nsignals:/n void brightnessChanged(int brightness); // 添加信号/n/nprivate slots:/n bool switchButton_status(bool checked);/n void on_brightnessSlider_valueChanged(int value);/n/nprivate:/n Ui::Lights *ui;/n int userid;/n/n void closeEvent(QCloseEvent *event);/n QString getLastBrightness(int userid);/n QString getLastState(int userid);/n void updateLastBrightness(int userid, QString brightness);/n};/n/n#endif // LIGHTS_H/n/n/n## lights.cpp/n```cpp/n#include /'lights.h/'/n#include /'ui_lights.h/'/n#include /'switchform.h/'/n#include /'sqlite.h/'/n#include
原文地址: https://www.cveoy.top/t/topic/fBak 著作权归作者所有。请勿转载和采集!