以下是一个使用 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 著作权归作者所有。请勿转载和采集!

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