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() 后查看 |

相关推荐
牛油果子哥q2 小时前
C++内存模型与深浅拷贝万字详解:栈堆静态内存布局、深浅拷贝底层差异、内存泄漏根治、拷贝崩溃踩坑、手写深拷贝实战
java·开发语言·c++
大鹏的NLP博客2 小时前
通用 Linux 嵌入式板端 C/C++ ABI 与 Glibc 依赖治理规范
linux·c++·交叉编译
ysa0510302 小时前
c++常用自带函数用法与注意
c++·笔记·算法
我不是疯子是傻子5 小时前
Qt 程序打包部署全攻略:从 windeployqt 到 Inno Setup 的静默安装与版本迭代实战
开发语言·qt
鸿芯微控科技7 小时前
MFC模拟量信号异常怎么排查?0-5V、4-20mA接线与量程换算
c++·5g·mfc·故障排查·质量流量控制器·4-20ma·模拟量信号
三十岁老牛再出发7 小时前
08.18每日总结
c++·python·numpy·pandas
小小龙学IT7 小时前
Qt 模型/视图框架(Model/View)深度解析:从 MVC 演化到数据展示架构的王者
qt·架构·mvc
余额瞒着我当琳8 小时前
C++--vector底层,leetcode118杨辉三角实战,对于传统reserve的坑点,迭代器失效
开发语言·c++
Quz8 小时前
QML ComboBox 完全自定义样式:背景、内容、下拉项与箭头
qt
醉城夜风~8 小时前
(超详细)C++多态(Polymorphism)
开发语言·c++