代码改错只显示修改部分:现在提示QMetaObjectconnectSlotsByName No matching signal for on_modeComboBox_currentIndexChangedint#ifndef USERSWIDGET_H#define USERSWIDGET_H#include QWidgetnamespace Ui class UsersWidget;clas
代码改错,只显示修改部分:
void UsersWidget::on_modeComboBox_currentIndexChanged(int index)
{
QString mode = ui->modeComboBox->currentText();
emit modeChanged(mode);
}
connect(ui->modeComboBox, QOverload<int>::of(&QComboBox::currentIndexChanged),
this, &UsersWidget::on_modeComboBox_currentIndexChanged);
void updateSmartHomeStatus(int userId, QString deviceName, QString devicestate, QString newValue)
{
Sqlite::sqlite_init();
// 执行更新操作
QSqlQuery query;
query.prepare("SELECT * FROM Status WHERE uid = :userId");
query.bindValue(":userId", userId);
if (!query.exec()) {
qDebug() << "查询id失败:" << query.lastError().text();
}
else {
QString sql = QString("INSERT INTO Status (uid, device_name, device_state, value) VALUES (:userId, :deviceName, :devicestate, :newValue)");
query.prepare(sql);
query.bindValue(":userId", userId);
query.bindValue(":deviceName", deviceName);
query.bindValue(":devicestate", devicestate);
query.bindValue(":newValue", newValue);
if (!query.exec()) {
qDebug() << "插入数据失败:" << query.lastError().text();
return;
}
}
}
bool statusUid(int userId)
{
Sqlite::sqlite_init();
QSqlQuery query;
// 查询智能家居状态表,获取用户对应的状态
query.prepare("SELECT * FROM Status WHERE uid = :userId");
query.bindValue(":userId", userId);
if (!query.exec()) {
qDebug() << "Failed to execute query!" << query.lastError().text();
return false;
}
else {
if (!query.next()) {
qDebug() << "No data found!";
return false;
}
else {
qDebug() << "Data found!";
return true;
}
}
}
-- 创建智能家居状态表
CREATE TABLE IF NOT EXISTS Status (
sid INTEGER PRIMARY KEY AUTOINCREMENT,
uid INTEGER,
device_name varchar(10),
device_state varchar(10),
value varchar(10),
mode varchar(10),
FOREIGN KEY (uid) REFERENCES users (uid)
);
-- 创建用户表
CREATE TABLE IF NOT EXISTS users (
uid INTEGER PRIMARY KEY AUTOINCREMENT,
username varchar(10),
passwd varchar(10)
);
-- 创建智能家居状态表
CREATE TABLE IF NOT EXISTS Status (
sid INTEGER PRIMARY KEY AUTOINCREMENT,
uid INTEGER,
device_name varchar(10),
device_state varchar(10),
value varchar(10),
mode varchar(10),
FOREIGN KEY (uid) REFERENCES users (uid)
);
SELECT device_state FROM Status WHERE uid = 123 AND device_name = '智能灯';
SELECT device_state FROM Status WHERE uid = 123 AND device_name = '智能灯' ORDER BY sid DESC LIMIT 1;
UPDATE Status SET value = '12', device_state = '开启' WHERE uid = 123 AND device_name = '智能灯';
原文地址: https://www.cveoy.top/t/topic/izGG 著作权归作者所有。请勿转载和采集!