以下是一个简单的示例代码,展示了如何将QWidget界面的温度和灯控信息传到数据库中,并在按键点击时从数据库中获取并显示在QWidget界面上。\n\ncpp\n#include \"QtWidgets\"\n#include \"QtSql\"\n\nclass MainWindow : public QMainWindow\n{\n Q_OBJECT\n\npublic:\n MainWindow(QWidget *parent = nullptr) : QMainWindow(parent)\n {\n // 创建数据库连接\n QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");\n db.setDatabaseName("data.db");\n\n // 打开数据库\n if (!db.open()) {\n qWarning() << "无法打开数据库";\n return;\n }\n\n // 创建表\n QSqlQuery query;\n query.exec("CREATE TABLE IF NOT EXISTS data (id INTEGER PRIMARY KEY AUTOINCREMENT, temperature REAL, lightControl INTEGER)");\n\n // 创建界面元素\n QLabel *temperatureLabel = new QLabel("温度:");\n temperatureLineEdit = new QLineEdit;\n QLabel *lightControlLabel = new QLabel("灯控信息:");\n lightControlLineEdit = new QLineEdit;\n QPushButton *saveButton = new QPushButton("保存");\n QPushButton *loadButton = new QPushButton("加载");\n\n // 布局\n QVBoxLayout *layout = new QVBoxLayout;\n layout->addWidget(temperatureLabel);\n layout->addWidget(temperatureLineEdit);\n layout->addWidget(lightControlLabel);\n layout->addWidget(lightControlLineEdit);\n layout->addWidget(saveButton);\n layout->addWidget(loadButton);\n\n QWidget *centralWidget = new QWidget;\n centralWidget->setLayout(layout);\n setCentralWidget(centralWidget);\n\n // 信号槽连接\n connect(saveButton, &QPushButton::clicked, this, &MainWindow::saveData);\n connect(loadButton, &QPushButton::clicked, this, &MainWindow::loadData);\n }\n\nprivate slots:\n void saveData()\n {\n // 获取温度和灯控信息\n double temperature = temperatureLineEdit->text().toDouble();\n int lightControl = lightControlLineEdit->text().toInt();\n\n // 插入数据到数据库\n QSqlQuery query;\n query.prepare("INSERT INTO data (temperature, lightControl) VALUES (:temperature, :lightControl)");\n query.bindValue(":temperature", temperature);\n query.bindValue(":lightControl", lightControl);\n query.exec();\n\n // 清空输入框\n temperatureLineEdit->clear();\n lightControlLineEdit->clear();\n }\n\n void loadData()\n {\n // 从数据库中获取最新的数据\n QSqlQuery query("SELECT temperature, lightControl FROM data ORDER BY id DESC LIMIT 1");\n if (query.next()) {\n double temperature = query.value(0).toDouble();\n int lightControl = query.value(1).toInt();\n\n // 在界面上显示数据\n temperatureLineEdit->setText(QString::number(temperature));\n lightControlLineEdit->setText(QString::number(lightControl));\n }\n }\n\nprivate:\n QLineEdit *temperatureLineEdit;\n QLineEdit *lightControlLineEdit;\n};\n\nint main(int argc, char *argv[])\n{\n QApplication a(argc, argv);\n\n MainWindow w;\n w.show();\n\n return a.exec();\n}\n\n\n这个示例代码使用了SQLite数据库来保存温度和灯控信息。在保存数据时,会将温度和灯控信息插入到数据库中。在加载数据时,会从数据库中获取最新的数据,并显示在QWidget界面上。\n\n请注意,这只是一个简单的示例代码,实际的应用可能需要更多的错误处理和更完善的逻辑。


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

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