这段代码的功能是实现在主界面进入Lights界面,设置智能灯的状态信息,并且可以保存上一次的状态信息。具体修改的部分如下:

  1. Lights类的构造函数中,添加了一个userid参数,并且在初始化列表中进行了赋值,保证userid不会发生变化。
Lights::Lights(int userid, QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Lights),
    userid(userid)
{
    // ...
}
  1. Lights类的loadLastStatus函数中,修改了获取上一次状态和亮度的SQL查询语句,使用了新的函数getLastStategetLastBrightness
void Lights::loadLastStatus()
{
    QString state = getLastState(this->userid);
    QString brightness = getLastBrightness(this->userid);
    // ...
}
  1. 添加了一个新的函数getLastBrightness,用于从数据库中获取上一次的亮度信息。
QString Lights::getLastBrightness(int userid)
{
    Sqlite::sqlite_init();
    QString queryStr = QString("SELECT value FROM Status WHERE uid = %1 AND device_name = '智能灯'").arg(userid);
    QSqlQuery query;
    if (query.exec(queryStr) && query.next())
    {
        return query.value(0).toString();
    }
    else
    {
        qDebug() << "得到上一次亮度错误: " << query.lastError().text();
        return "";
    }
}
  1. 添加了一个新的函数getLastState,用于从数据库中获取上一次的状态信息。
QString Lights::getLastState(int userid)
{
    Sqlite::sqlite_init();
    QString queryStr = QString("SELECT device_state FROM Status WHERE uid = %1 AND device_name = '智能灯'").arg(userid);
    QSqlQuery query;
    if (query.exec(queryStr) && query.next())
    {
        return query.value(0).toString();
    }
    else
    {
        qDebug() << "得到上一次状态错误: " << query.lastError().text();
        return "";
    }
}
  1. 添加了一个新的函数updateLastBrightness,用于更新上一次的亮度和状态信息。
void Lights::updateLastBrightness(int userid, QString brightness, QString state)
{
    Sqlite::sqlite_init();
    QString queryStr = QString("UPDATE Status SET value = '%1' AND device_state = '%2' WHERE uid = %3 AND device_name = '智能灯'").arg(brightness).arg(state).arg(userid);
    QSqlQuery query;
    if (!query.exec(queryStr))
    {
        qDebug() << "更新亮度失败: " << query.lastError().text();
    }
}

以上是对代码的修改部分,实现了在主界面进入Lights界面,设置智能灯状态信息,点击关闭按钮,该界面隐藏,再次点击Lights界面,显示上一次的智能灯状态信息。

Qt想要实现在主界面进入Lights界面设置智能灯状态信息点击关闭按钮该界面隐藏再次点击Lights界面显示上一次的智能灯状态信息。代码修改只显示修改部分#include lightsh#include ui_lightsh#include switchformh#include sqliteh#include QSqlQuery#include QSqlDatabase#include QSql

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

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