Qt + SQLite 配置与使用指南

Qt + SQLite 配置与使用指南

1.1 Qt 工程配置(.pro 文件)

打开项目的 .pro 文件,在原有模块后追加 sql:

QT += core gui serialport sql

必须重新执行 qmake :在 Qt Creator 中右键项目 → 执行 qmake,然后重新构建。否则编译器会报找不到 QSqlDatabase 等头文件。

验证 SQLite 驱动是否加载成功,可在 main.cpp 或任意窗口中加一段测试代码:

#include <QSqlDatabase>
#include <QDebug>

*//*打印所有可用的数据库驱动
qDebug() << QSqlDatabase::drivers();
*//*正常应输出列表中包含 "QSQLITE"

若列表中没有 QSQLITE,请检查:

  1. 是否正确添加了 QT += sql 并重新 qmake。
  2. 若使用静态编译的 Qt,需要手动链接 SQLite 插件;动态编译的 Qt(官方安装版默认)通常自带。

1.2 SQLite 可视化工具安装(DB Browser for SQLite)

项目运行后会生成 .db 文件,直接用文本编辑器打开是乱码,建议安装可视化工具查看。

推荐工具:DB Browser for SQLite
  • 官网下载 :https://sqlitebrowser.org/dl/
  • Windows 用户直接下载 DB.Browser.for.SQLite-v3.x.x-win64.exe 安装包,按向导安装即可。
基本使用步骤
  1. 打开数据库文件 :点击 打开数据库,选择项目运行目录下的 device_data.db。
  2. 浏览数据 :切换到 浏览数据 标签,选择表 device_data,即可查看所有已存储的记录。
  3. 执行 SQL :切换到 执行 SQL 标签,可手写查询语句,例如:
  1. * FROM device_data ORDER BY timestamp DESC LIMIT 10;
  1. 导出数据 :在 浏览数据 界面右键 → 导出结果,可导出为 CSV/Excel,方便后续分析。

替代工具:SQLiteStudio(https://sqlitestudio.pl),功能类似,按个人习惯选择即可。


1.3 常见环境排错

|-----------------------------------------|-------------------------|----------------------------------------------------|
| 现象 | 原因 | 解决 |
| QSqlDatabase: QSQLITE driver not loaded | 未加 QT += sql 或未重新 qmake | 检查 .pro,重新 qmake → 重新构建 |
| 程序启动后找不到 .db 文件 | 使用的是相对路径 device_data.db | 文件实际生成在可执行程序所在目录(build 目录),而非源码目录,但可使用代码指定生成目录 |
| 可视化工具提示数据库被锁定 | Qt 程序正在运行并占用数据库 | 关闭 Qt 程序后再用 DB Browser 打开,或在代码中使用 m_db.close() 后查看 |

相关推荐
Severus_black2 小时前
【C++初阶】list使用及相关实现,思路顺滑流畅!
c语言·数据结构·c++·stl·list
敲上瘾4 小时前
Qt Widgets入门:项目模板解析与Hello World
开发语言·数据库·c++·qt·ui·qt6.3
旖旎夜光5 小时前
【C++ 基础入门】C++ 多态(中):虚函数表、多态原理与动静绑定
开发语言·c++·笔记·学习
旖旎夜光6 小时前
【C++ 基础入门】C++多态(下):单/多继承虚表、多态补充与 21 道高频题
开发语言·c++·笔记·学习
apcipot_rain16 小时前
C++转Java日记(03)
java·开发语言·c++
布莱克60517 小时前
C++ 中 map 的 insert 与 emplace:key 已存在时会覆盖吗?
开发语言·数据结构·c++·算法·map
xys_67817 小时前
深挖C++:类和对象(中)
开发语言·c++
MOONICK19 小时前
QT元数据
开发语言·qt
D e re k ZH19 小时前
C++ 系统学习手记:从语法细节到工程实践
开发语言·数据结构·c++·算法
xiaoye-duck20 小时前
《C++ 项目:手写大模型接入 SDK》Ollama接口设计(上):初始化、全量响应实现和测试
开发语言·网络·c++·语言模型