#include #include #include #include #include

class MainWindow : public QMainWindow { Q_OBJECT

public: MainWindow(QWidget *parent = nullptr) : QMainWindow(parent) { // 登录界面 QWidget *loginWidget = new QWidget(); QGridLayout *loginLayout = new QGridLayout(); QLabel *usernameLabel = new QLabel("Username:"); QLabel *passwordLabel = new QLabel("Password:"); QLineEdit *usernameEdit = new QLineEdit(); QLineEdit *passwordEdit = new QLineEdit(); QPushButton *loginButton = new QPushButton("Login");

    loginLayout->addWidget(usernameLabel, 0, 0);
    loginLayout->addWidget(usernameEdit, 0, 1);
    loginLayout->addWidget(passwordLabel, 1, 0);
    loginLayout->addWidget(passwordEdit, 1, 1);
    loginLayout->addWidget(loginButton, 2, 0, 1, 2);

    loginWidget->setLayout(loginLayout);

    // 控制界面
    QWidget *controlWidget = new QWidget();
    QGridLayout *controlLayout = new QGridLayout();
    QLabel *lightLabel = new QLabel("Smart Light:");
    QLabel *acLabel = new QLabel("Air Conditioner:");
    QLabel *humidifierLabel = new QLabel("Humidifier:");
    QLabel *curtainLabel = new QLabel("Curtain:");
    QLabel *modeLabel = new QLabel("Mode:");
    QCheckBox *lightCheckBox = new QCheckBox();
    QCheckBox *acCheckBox = new QCheckBox();
    QCheckBox *humidifierCheckBox = new QCheckBox();
    QCheckBox *curtainCheckBox = new QCheckBox();
    QComboBox *modeComboBox = new QComboBox();
    QPushButton *saveButton = new QPushButton("Save");

    controlLayout->addWidget(lightLabel, 0, 0);
    controlLayout->addWidget(lightCheckBox, 0, 1);
    controlLayout->addWidget(acLabel, 1, 0);
    controlLayout->addWidget(acCheckBox, 1, 1);
    controlLayout->addWidget(humidifierLabel, 2, 0);
    controlLayout->addWidget(humidifierCheckBox, 2, 1);
    controlLayout->addWidget(curtainLabel, 3, 0);
    controlLayout->addWidget(curtainCheckBox, 3, 1);
    controlLayout->addWidget(modeLabel, 4, 0);
    controlLayout->addWidget(modeComboBox, 4, 1);
    controlLayout->addWidget(saveButton, 5, 0, 1, 2);

    controlWidget->setLayout(controlLayout);
    controlWidget->setVisible(false);

    // 主窗口
    QWidget *centralWidget = new QWidget();
    QVBoxLayout *mainLayout = new QVBoxLayout();
    mainLayout->addWidget(loginWidget);
    mainLayout->addWidget(controlWidget);
    centralWidget->setLayout(mainLayout);
    setCentralWidget(centralWidget);

    // 登录按钮点击事件
    connect(loginButton, &QPushButton::clicked, [=]() {
        QString username = usernameEdit->text();
        QString password = passwordEdit->text();
        if (username == "admin" && password == "admin") {
            loginWidget->setVisible(false);
            controlWidget->setVisible(true);
        }
    });

    // 保存按钮点击事件
    connect(saveButton, &QPushButton::clicked, [=]() {
        bool lightChecked = lightCheckBox->isChecked();
        bool acChecked = acCheckBox->isChecked();
        bool humidifierChecked = humidifierCheckBox->isChecked();
        bool curtainChecked = curtainCheckBox->isChecked();
        QString mode = modeComboBox->currentText();

        // 将状态信息传输到服务器
        // ...
    });
}

};

int main(int argc, char *argv[]) { QApplication a(argc, argv);

MainWindow w;
w.show();

return a.exec();

}

#include <stdio.h> #include <stdlib.h> #include <string.h> #include <mysql/mysql.h>

#define SERVER "localhost" #define USER "root" #define PASSWORD "password" #define DATABASE "smart_home"

int main() { MYSQL *conn; MYSQL_RES *res; MYSQL_ROW row;

conn = mysql_init(NULL);
if (!mysql_real_connect(conn, SERVER, USER, PASSWORD, DATABASE, 0, NULL, 0)) {
    fprintf(stderr, "%s\n", mysql_error(conn));
    exit(1);
}

if (mysql_query(conn, "CREATE TABLE IF NOT EXISTS status ("
                      "id INT AUTO_INCREMENT PRIMARY KEY,"
                      "light BOOLEAN,"
                      "ac BOOLEAN,"
                      "humidifier BOOLEAN,"
                      "curtain BOOLEAN,"
                      "mode VARCHAR(255)"
                      ")")) {
    fprintf(stderr, "%s\n", mysql_error(conn));
    exit(1);
}

// 接收客户端传输的状态信息并存储在数据库中
// ...

if (mysql_query(conn, "SELECT * FROM status")) {
    fprintf(stderr, "%s\n", mysql_error(conn));
    exit(1);
}
res = mysql_use_result(conn);

printf("Smart Home Status:\n");
while ((row = mysql_fetch_row(res)) != NULL) {
    printf("ID: %s, Light: %s, AC: %s, Humidifier: %s, Curtain: %s, Mode: %s\n",
           row[0], row[1], row[2], row[3], row[4], row[5]);
}

mysql_free_result(res);
mysql_close(conn);

return 0;
智能家居客户端与服务器:基于Qt和C语言的实现

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

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