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

相关推荐
FlightYe28 分钟前
音视频修炼之容器与协议(一):MP4和MOV的box剖析
android·linux·c++·ffmpeg·音视频
音草1 小时前
AVL 树详解:从概念到 C++ 实现
c++
凉茶钱1 小时前
list:哨兵节点,const_iterator 和 const iterator的区别与迭代器失效
数据结构·c++·list
沫璃染墨1 小时前
从零入门计算机网络系列(六):TCP套接字编程实战——从listen监听到客户端与服务器通信
linux·服务器·c++·tcp/ip·计算机网络·tcp
努力实干2 小时前
C++ 面向对象与工程架构
开发语言·c++·架构
代钦塔拉2 小时前
【C++/Qt 进阶】设计模式系列(6):桥接模式——把“两个独立变化的维度“拆开
c++·qt·设计模式
青少儿编程课堂2 小时前
蓝桥杯·全国青少年信息素养大赛·电子学会Python/C/C++考级:任意进制互转与大数多进制加法解析
c++·python·算法·bfs·信息学竞赛
Shadow(⊙o⊙)2 小时前
仿muduo实现高并发服务器——EPOLL设置与移除Poller.hpp管理Channel
运维·服务器·c++
闻缺陷则喜何志丹2 小时前
【C++特性及类库】多线程
开发语言·c++·多线程·语言特性·系统库
多弗朗皮卡丘2 小时前
C++ 哈希(下)
c++·算法·哈希算法