SQLite 数据库存取图片(QT方式)

2023-11-04

目录

实战演示:

效果展示:


  • SQLite 数据库可以存取图片
  • 存取的格式为 BLOB 格式
  • 需要把图片转为 QByteArray 格式进行存取

1、实战演示

以下实战代码,复制便可以直接运行,希望可以帮助到你。

#include <QtSql>
#include <QtWidgets>

int main(int argc, char *argv[])
{
    QApplication app(argc, argv);

    // 建立数据库
    QString dbName("myDatabase.db3");
    // 删除 sqlite 文件, 如果它存在于以前的运行
    QFile::remove(dbName);
    QSqlDatabase db = QSqlDatabase::addDatabase( "QSQLITE" );
    db.setDatabaseName(dbName);
    db.open();
    QSqlQuery query = QSqlQuery( db );
    query.exec("CREATE TABLE IF NOT EXISTS imgTable ( filename TEXT, imagedata BLOB )");

    // 截图并生成一个图片,将其存放在 QByteArray 中
    /*
    QScreen *screen = app.primaryScreen();
    QPixmap inPixmap = screen->grabWindow( 0 );
    QByteArray inByteArray;
    QBuffer inBuffer( &inByteArray );
    inBuffer.open( QIODevice::WriteOnly );
    // 将 inPixmap 写入 PNG 格式的 inByteArray
    inPixmap.save( &inBuffer, "PNG" );
    */

    // 或则,直接将图片加载到 QByteArray 中
    QFile file("C:/Program Files/WPS Office/11.1.0.12763/office6/StartScreenTile/ksolaunch/logo.png");
    if (!file.open(QIODevice::ReadOnly))
    {
        return app.exec();
    }
    QByteArray inByteArray = file.readAll();

    // 插入图片到数据库
    query.prepare( "INSERT INTO imgTable (filename, imagedata) VALUES ('logo.png', :imageData)" );
    query.bindValue( ":imageData", inByteArray );
    if( !query.exec())
    {
        qDebug() << "Error inserting image into table:\n" << query.lastError();
    }

    // 从数据库中获取图片
    if( !query.exec( "SELECT imagedata from imgTable" ))
    {
        qDebug() << "Error getting image from table:\n" << query.lastError();
    }

    query.first();
    QByteArray outByteArray = query.value( 0 ).toByteArray();
    QPixmap outPixmap = QPixmap();
    outPixmap.loadFromData( outByteArray );
    db.close();

    // 显示图片
    QLabel myLabel;
    myLabel.setPixmap( outPixmap );
    myLabel.show();

    return app.exec();
}

2、效果展示

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SQLite 数据库存取图片(QT方式) 的相关文章

  • boost::interprocess 准备好迎接黄金时间了吗? [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我正在开发一个由内存映射文件支持的线
  • 为什么 LinkedList 通常比 List 慢?

    我开始在我的一些 C 算法中使用一些 LinkedList 而不是列表 希望能够加快速度 然而 我注意到他们只是感觉更慢 像任何优秀的开发人员一样 我认为我应该尽职调查并验证我的感受 所以我决定对一些简单的循环进行基准测试 我认为用一些随机
  • 将占位符文本添加到文本框

    我正在寻找一种将占位符文本添加到文本框的方法 就像在 html5 中使用文本框一样 IE 如果文本框没有文本 则会添加文本Enter some text here 当用户单击它时 占位符文本消失并允许用户输入自己的文本 如果文本框失去焦点并
  • 如何在 C++ 的子目录中创建文件?

    这是我的代码 如何在子目录联系人中创建文件 每次创建该文件时 它都会出现在与我的程序相同的目录中 int main ofstream myfile contacts myfile open a myfile close 在构造函数中指定完整
  • 实体框架7审计日志

    我正在将一个旧项目移植到 ASP NET 5 和 Entity Framework 7 我使用数据库优先方法 DNX 脚手架 来创建模型 旧项目基于Entity Framework 4 审计跟踪是通过重写实现的SaveChanges的方法D
  • CMake 警告:无法为目标生成安全的链接器搜索路径

    在为 pcl 项目运行 CMake 时 我收到一条警告消息 Configuring done CMake Warning at CMakeLists txt 12 add executable Cannot generate a safe
  • ASP MVC 5 - 403 customError 不起作用

    我正在尝试为我的应用程序创建自定义错误页面 它在大部分情况下都有效 但不适用于403 errors 我的网络配置
  • 在 C# 中生成随机值

    如何使用以下命令生成随机 Int64 和 UInt64 值RandomC 中的类 这应该可以解决问题 这是一个扩展方法 因此您可以像调用普通方法一样调用它Next or NextDouble上的方法Random目的 public stati
  • 使用 cudamalloc()。为什么是双指针?

    我目前正在浏览有关的教程示例http code google com p stanford cs193g sp2010 http code google com p stanford cs193g sp2010 学习CUDA 演示的代码 g
  • 为什么我的 ITexthandler 不工作?我正在尝试将 XML 解析为 ITextSharp 文档

    我正在使用 Visual Developer 2010 MVC 3 c 我正在尝试将 XML 解析为 iTextSharp 文档 如下所示 ITextHandler textHandler new ITextHandler doc text
  • .NET 的 HttpWebResponse 是否会自动解压缩 GZiped 和 Deflated 响应?

    我正在尝试执行一个接受压缩响应的请求 var request HttpWebRequest HttpWebRequest Create requestUri request Headers Add HttpRequestHeader Acc
  • fscanf 和 EOF 中的否定扫描集

    我的文件中有一个以逗号分隔的字符串列表 姓名 1 姓名 2 姓名 3 我想跳过所有逗号来阅读这些名字 我写了以下循环 while true if fscanf file my string 1 break 然而 它总是比预期多执行一次 给定
  • 如何使用eclipse构建C++应用程序

    我已经从以下位置下载了 Eclipse Juno for C here http www eclipse org downloads download php file technology epp downloads release ju
  • 停止 TcpListener 的正确方法

    我目前正在使用 TcpListener 来处理传入连接 每个连接都有一个线程用于处理通信 然后关闭该单个连接 代码如下 TcpListener listener new TcpListener IPAddress Any Port Syst
  • 使 C# 编译器相信执行将在成员返回后停止

    我认为目前这是不可能的 或者这是否是一个好主意 但这是我刚才正在考虑的事情 我使用 MSTest 对我的 C 项目进行单元测试 在我的一项测试中 我执行以下操作 MyClass instance try instance getValue
  • Intel 和 AMD 处理器有相同的汇编程序吗?

    C语言被用来编写Unix以实现可移植性 使用不同编译器编译的同一个C语言程序会产生不同的机器指令 为什么 Windows 操作系统能够在两者上运行Intel https en wikipedia org wiki Intel and AMD
  • Visual Studio 2015默认附加库

    当我在 VS 2015 中创建一个空项目时 它会自动将这些库放入 附加依赖项 中 kernel32 lib user32 lib gdi32 lib winspool lib comdlg32 lib advapi32 lib shell3
  • 计算两个日期之间的工作日数?

    在C 中 如何计算business 或工作日 两个日期之间的天数 我以前曾经遇到过这样的任务 并且我已经找到了解决方案 当可以避免的时候 我会避免列举其间的所有日子 这里就是这种情况 正如我在上面的一个答案中看到的那样 我什至没有提到创建一
  • 请解释为什么Java和C对此代码给出不同的答案

    public class Test public static void main String args int i 10 i i System out println value of i is i 输出是 10 当我在中执行类似的代码
  • C# 中成员访问中的问号是什么意思?

    有人可以向我解释一下以下代码中会员访问中的问号是什么意思吗 它是标准 C 的一部分吗 尝试在 Xamarin Studio 中编译此文件时出现解析错误 this AnalyzerLoadFailed Invoke this new Anal

随机推荐

  • 网络连接错误错误代码103怎么解决

    网络连接错误错误代码103的解决办法 1 查看网络是否通畅 点击开始 运行 输入cmd 然后输入ping空格加网址 按enter 查看该网站网络是否通畅 是否网络的问题 如果不是可能就是浏览器等其他问题 2 dns优选 打开杀毒软件 人工服
  • fastJson 前端对象null转为空字符串 “ “,空数组 [ ],空对象{ }

    Jackson请看 JsonProperty SpringBoot Jackson 将null转字符串 List Array转 int转0 前提 使用FastJson的 JsonField注解 import java util List i
  • Zigbee出现Warning[w69]: Address translation (-M, -b# or -b@) has no effect on the output format ‘debug

    Building configuration SampleApp EndDeviceEB Updating build tree ZMain c Warning Pe550 variable lcd buf was set but neve
  • 编程题实训-基于链表的图书信息管理

    第1关 基于链式存储结构的图书信息表的创建和输出 任务描述 本关任务 定义一个包含图书信息 书号 书名 价格 的链表 读入相应的图书数据来完成图书信息表的创建 然后统计图书表中的图书个数 同时逐行输出每本图书的信息 编程要求 输入 输入n
  • GO语言网络编程(并发编程)GMP原理与调度

    GO语言网络编程 并发编程 GMP原理与调度 1 GMP 原理与调度 1 1 1 一 Golang 调度器 的由来 1 单进程时代不需要调度器 我们知道 一切的软件都是跑在操作系统上 真正用来干活 计算 的是 CPU 早期的操作系统每个程序
  • deep learning sigmoid函数和softplus函数

    Certain functions arise often while working with probability distributions especially the probability distributions used
  • Java实现八大排序

    汲取知识 分享快乐 让生命不留遗憾 作者 不能再留遗憾了 专栏 Java学习 该文章主要内容 直接插入排序 希尔排序 选择排序 堆排序 冒泡排序 快速排序 递归 非递归 归并排序 递归 非递归 文章目录 前言 什么是排序 稳定性 排序实现
  • Thales

    sudo nmap sP 192 168 0 1 24 Starting Nmap 7 92 https nmap org at 2022 04 20 13 46 CST Nmap scan report for 192 168 0 1 H
  • 内核的位图和位操作接口介绍

    1 内核的位图 1 位图 位图就是用一个bit来表示一个资源的情况 比如要表示32个资源的状态 如果是每个资源用一个int型变量去表示则需要32个int型变量 但是采用位图则只需要1个int型变量 32个bit 2 适用位图的情况 资源只有
  • JavaScript和TypeScript入门

    文章目录 前言 一 JavaScript特点 二 JavaScript初步 一 基本语法 二 流程结构 1 顺序结构 2 选择结构 3 循环结构 三 函数 四 对象 1 创建对象 2 MATH对象 3 日期对象 4 字符串对象 五 数组 1
  • rabbitMQ的详细介绍

    1 概述 RabbitMQ是一个消息中间件 它接受并转发消息 你可以把它当做一个快递站点 当你要发送一个包裹时 你把你的包裹放到快递站 快递员最终会把你的快递送到收件人那里 按照这种逻辑RabbitMQ是一个快递站 一个快递员帮你传递快件
  • 哈希值相同的规律

    分享哈希值相同的一个规律 System out println Aa hashCode System out println BB hashCode 2112 2112 我们发现Aa和BB是相同的哈希值 然后我们多做几次试验可以发现一个规律
  • 作为开发人员您会喜欢的 7 个免费公共 API

    1 JSON 占位符 JSON Placeholder是一项服务 可为您提供用于测试和原型制作的假在线REST API 这是每个开发人员的首选 API 2 谷歌翻译 Google有大量的API 但其中大部分是付费的 值得庆幸的是 Trans
  • 河南省网络安全高校战队联盟CTF训练营-web文件上传第一期

    文件上传 个人介绍 姓名 飞羽 CTF菜菜一枚 例题来源 ctfhub https www ctfhub com pwnthebox https insider pwnthebox com ctfshow https ctf show 工具
  • stduino IDE(国产)安装及使用感受!

    文章目录 一 了解stduino IDE 二 安装stduino 三 stduino完成STM32串口通信 四 总结与使用感受 五 参考 一 了解stduino IDE 大概是受到Ardunio IDE的启发 网上有一个国人版的MCU集成开
  • Sublime Text2中的快捷键一览表(Sublime 键盘快捷键大全 )

    Sublime Text 提供了无比强大的快捷键阵容 如果能够在Coding的时候灵活的使用快捷键 将能够使得你的效率倍增 相信在不久的将来 Sublime Text将是你跨平台使用的最佳Coding利器 Sublime Text 2默认使
  • matlab 求单/多元函数极值

    matlab 求单 多元函数极值 单元函数极值 平时如果手算的话 就会先求导数 再求驻点 最终代值算出极值 如果用matlab代码求的话 就可以减少很多不必要的计算 fun inline 0 5 x exp x 2 ezplot fun 0
  • 一个全新的数字化转型和新的营销方式已经来临!

    云翼港最新推出一套直播系统 一部直播手机 一套直播辅助软件 一个人只需一台直播手机 可以在不同的直播平台进行直播 一个人可以同时管理5 10个账号 甚至更多 轻松实现多平台的直播 这款直播辅助软件不仅可以使用数字人 也支持真人直播 还可以在
  • python从入门到入土

    一 基础语法 1 字变量 字变量 在代码中 被写下来的固定的值 字符串 python中用双引号包裹起来的都是字符串 本代码演示了 各类字变量的写法 通过print语句输出各类字变量 写一个整数字变量 666 写一个浮点数字变量 13 14
  • SQLite 数据库存取图片(QT方式)

    目录 实战演示 效果展示 SQLite 数据库可以存取图片 存取的格式为 BLOB 格式 需要把图片转为 QByteArray 格式进行存取 1 实战演示 以下实战代码 复制便可以直接运行 希望可以帮助到你 include