Qt C++ 客户端读取 SQLite 智能家居状态数据并表格显示
以下是一个使用 Qt C++ 编写的客户端代码示例,用于读取 SQLite 数据库中的智能家居状态表数据,并以表格形式显示出来。
首先,需要在 Qt 项目中添加 SQLite 数据库的支持。可以在 .pro 文件中添加以下行:
QT += sql
然后,创建一个 MainWindow 类,继承自 QMainWindow,并在头文件中添加以下代码:
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QTableView>
#include <QSqlTableModel>
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
MainWindow(QWidget *parent = nullptr);
~MainWindow();
private:
QTableView *tableView;
QSqlTableModel *model;
};
#endif // MAINWINDOW_H
在源文件中,实现 MainWindow 类的构造函数和析构函数,以及初始化表格视图和模型:
#include "mainwindow.h"
#include <QSqlDatabase>
#include <QSqlQuery>
#include <QSqlError>
#include <QDebug>
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
{
// 创建数据库连接
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
db.setDatabaseName("smart_home.db");
// 打开数据库
if (!db.open()) {
qDebug() << "Failed to open database:" << db.lastError().text();
return;
}
// 创建表格视图
tableView = new QTableView(this);
setCentralWidget(tableView);
// 创建模型
model = new QSqlTableModel(this, db);
model->setTable("home_status"); // 设置表名
// 加载数据
if (!model->select()) {
qDebug() << "Failed to load data:" << model->lastError().text();
return;
}
// 设置表格视图的模型
tableView->setModel(model);
}
MainWindow::~MainWindow()
{
delete model;
}
最后,在 main 函数中创建 MainWindow 对象并显示窗口:
#include "mainwindow.h"
#include <QApplication>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
w.show();
return a.exec();
}
这样,当程序运行时,将会显示一个表格视图,其中包含了从 SQLite 数据库中读取的智能家居状态表数据。
请注意,上述代码假设数据库文件名为 "smart_home.db",表名为 "home_status",并且表结构已经在数据库中创建好。如果数据库文件或表不存在,或者表结构不正确,将会导致数据读取失败。
原文地址: https://www.cveoy.top/t/topic/fyug 著作权归作者所有。请勿转载和采集!