当前位置: 首页 > news >正文

缓冲区类QBuffer

1、QBuffer继承自QIODevice

2、是一种随机设备

3、和QFile类似,

4、有了 QBuffer,你可以把 QByteArray 当成文件一样来操作

其主要作用就是像QFile操作文件一样来操作一块QByteArray(内存区域),比如读和写

常用方法

构造函数

  • 在构造函数中指定要操作的QByteArray
  • QBuffer(QByteArray *byteArray, QObject *parent = nullptr)
  • 默认构造函数也可以不指定QByteArray,QBuffer自己内部会生成
  • QBuffer(QObject *parent = nullptr)

设置QByteArray

也可以通过下面2个函数来指定要操作的QByteArray

void setBuffer(QByteArray *byteArray)
void setData(const QByteArray &data)

获取关联的QByteArray

QByteArray &buffer()
const QByteArray &buffer() const
const QByteArray &data() const

举例:

像文件一样来操作QByteArray

QByteArray ba;
QBuffer buffer;buffer.setBuffer( & ba); //设置QByteArray
if (buffer.open(QIODevice::ReadWrite)) //打开QByteArray
{buffer.write("你好世界"); //往里面写数据buffer.close();
} else {qDebug() << buffer.errorString();
}qDebug() << ba.constData(); //打印下里面的数据

写入二进制数据

QByteArray byteArray;
QBuffer buffer( & byteArray);
buffer.open(QIODevice::WriteOnly);QDataStream out( & buffer);
out << QApplication::palette();//将画板信息写入到QBuffer关联的QByteArray中

读取二进制流

QPalette palette;
QBuffer buffer( & byteArray);
buffer.open(QIODevice::ReadOnly);QDataStream in ( & buffer);
in >> palette;

往指定位置写入数据

QByteArray byteArray("abc");
QBuffer buffer;
buffer.setBuffer( & byteArray);
buffer.open(QIODevice::WriteOnly);
buffer.seek(3);//光标位置往后移动3个,移到c的后面
buffer.write("def", 3);
buffer.close();
// byteArray == "abcdef"

学习链接:https://github.com/0voice

 

相关文章:

缓冲区类QBuffer

1、QBuffer继承自QIODevice 2、是一种随机设备 3、和QFile类似&#xff0c; 4、有了 QBuffer&#xff0c;你可以把 QByteArray 当成文件一样来操作 其主要作用就是像QFile操作文件一样来操作一块QByteArray&#xff08;内存区域&#xff09;&#xff0c;比如读和写 常用方…...

从一个事故中理解 Redis(几乎)所有知识点

作者&#xff1a;看破 一、简单回顾 事故回溯总结一句话&#xff1a; &#xff08;1&#xff09;因为大 KEY 调用量&#xff0c;随着白天自然流量趋势增长而增长&#xff0c;最终在业务高峰最高点期占满带宽使用 100%。 &#xfeff; &#xfeff; &#xff08;2&#xff…...

MySQL程序介绍<二>

目录 mysqlcheck - 表维护程序 Mysqldump - 数据库备份程序 mysqladmin - MySQL 服务器管理程序 mysqlshow - 显⽰数据库、表和列信息 mysqldumpslow - 总结慢查询⽇志⽂件 ​编辑 mysqlbinlog - 处理⼆进制⽇志⽂件 mysqlslap - 负载仿真客⼾端 接着上篇继续介绍MySQL…...

Java项目实战II基于Spring Boot的毕业就业信息管理系统设计与实现(源码+数据库+文档)

目录 一、前言 二、技术介绍 三、系统实现 四、文档参考 五、核心代码 六、源码获取 全栈码农以及毕业设计实战开发&#xff0c;CSDN平台Java领域新星创作者&#xff0c;专注于大学生项目实战开发、讲解和毕业答疑辅导。获取源码联系方式请查看文末 一、前言 随着高校扩…...

LeetCode 1343.大小为K且平均值大于等于阈值的子数组数目

题目&#xff1a; 给你一个整数数组 arr 和两个整数 k 和 threshold 。 请你返回长度为 k 且平均值大于等于 threshold 的子数组数目。 思路&#xff1a;定长滑动窗口 入 更新 出 代码&#xff1a; class Solution {public int numOfSubarrays(int[] arr, int k, int t…...

【电商项目】1分布式基础篇

1 项目简介 1.2 项目架构图 1.2.1 项目微服务架构图 1.2.2 微服务划分图 2 分布式基础概念 3 Linux系统环境搭建 查看网络IP和网关 linux网络环境配置 补充P123&#xff08;修改linux网络设置&开启root密码访问&#xff09; 设置主机名和hosts映射 主机名解析过程分析&…...

PHP嵌套函数

PHP嵌套函数&#xff08;Nested Functions&#xff09;在标准的PHP语法中并不直接支持&#xff0c;也就是说&#xff0c;你不能在一个函数内部直接定义另一个函数。然而&#xff0c;可以通过闭包&#xff08;Closures&#xff09;和匿名函数&#xff08;Anonymous Functions&am…...

外包干了2个月,技术明显退步

回望过去&#xff0c;我是一名普通的本科生&#xff0c;于2019年通过校招有幸加入了南京某知名软件公司。那时的我&#xff0c;满怀着对未来的憧憬和热情&#xff0c;投入到了功能测试的岗位中。日复一日&#xff0c;年复一年&#xff0c;转眼间&#xff0c;我已经在这个岗位上…...

kaptcha依赖maven无法拉取的问题

老依赖了&#xff0c;就是无法拉取&#xff0c;也不知道为什么&#xff0c;就是用maven一直拉去不成功&#xff0c;还以为是魔法的原因&#xff0c;试了好久发现不是&#xff0c;只好在百度寻求帮助了&#xff0c;好在寻找到了这位大佬的文章Maven - 解决无法安装 Kaptcha 依赖…...

48.旋转图像

秋招未止脚步不止&#xff0c;大厂&#xff0c;我一定要上大厂&#xff01; 题目链接 . - 力扣&#xff08;LeetCode&#xff09; 自己的思路 感觉好难&#xff0c;想不出来. 噫噫噫&#xff0c;我想着想着又想出来了。 //发现规律了&#xff0c;先左右对称&#xff0c; 再…...

每天5分钟玩转C#/.NET之goto跳转语句

前言 在我们日常工作中常用的C#跳转语句有break、continue、return&#xff0c;但是还有一个C#跳转语句很多同学可能都比较的陌生就是goto&#xff0c;今天大姚带大家一起来认识一下goto语句及其它的优缺点。 goto语句介绍 goto 语句由关键字 goto 后跟一个标签名称组成&…...

Java处理大数据小技巧:深入探讨与实践

引言 一、选择合适的数据结构 1. 使用高效的集合 2. 并发安全的数据结构 二、内存管理 1. JVM参数调优 2. 避免内存泄漏 三、并行计算与分布式处理 1. 利用Java并发API 2. 分布式框架 四、数据压缩与序列化 1. 数据压缩 2. 高效序列化 五、外部存储与缓存 1. NoS…...

我开源了Go语言连接数据库和一键生成结构体的包【实用】

项目地址&#xff1a;https://gitee.com/zht639/my_gopkg autosql autosql 是一个简化数据库使用的模块&#xff0c;支持常见的数据库&#xff08;MySQL、PostgreSQL、SQLite、SQL Server&#xff09;。该模块不仅提供了数据库连接函数&#xff0c;还能自动生成数据表对应的结…...

Sentinel 快速入门

前置推荐阅读:Sentinel 介绍-CSDN博客 前置推荐阅读&#xff1a;Nacos快速入门-CSDN博客 快速开始 欢迎来到 Sentinel 的世界&#xff01;这篇新手指南将指引您快速入门 Sentinel。 Sentinel 的使用可以分为两个部分: 核心库&#xff08;Java 客户端&#xff09;&#xff1a…...

基于SpringBoot健康生活助手微信小程序【附源码】

基于SpringBoot健康生活助手微信小程序 效果如下&#xff1a; 管理员登录界面 管理员主界面 用户管理界面 健康记录管理界面 健康目标管理界面 微信小程序首页界面 活动信息界面 留言反馈界面 研究背景 近年来&#xff0c;由于计算机技术和互联网技术的飞速发展&#xff0c;…...

功能安全实战系列-软件FEMA分析与组件鉴定

本文框架 前言1. 功能安全分析1.1 Why1.2 What?1.3 How?1.3.1 分析范围确定1.3.2 失效模式分析1.3.3 安全措施制定1.3.4 确认是否满足功能安全目标2. 软件组件鉴定2.1 Why2.2 How?前言 在本系列笔者将结合工作中对功能安全实战部分的开发经验进一步介绍常用,包括Memory(Fl…...

【数据结构与算法】链表(上)

记录自己所学&#xff0c;无详细讲解 无头单链表实现 1.项目目录文件 2.头文件 Slist.h #include <stdio.h> #include <assert.h> #include <stdlib.h> struct Slist {int data;struct Slist* next; }; typedef struct Slist Slist; //初始化 void SlistI…...

svn-拉取与更新代码

右键项目文件 进行更新与提交代码&#xff0c;提交代码选择更改的文件以及填写commit...

【C++ 算法进阶】算法提升四

数组查询问题 &#xff08;数组优化&#xff09; 题目 数组为 {3 &#xff0c; 2&#xff0c; 2 &#xff0c;3 &#xff0c;1} 查询为&#xff08;0 &#xff0c;3 &#xff0c;2&#xff09; 这个查询的意义是 在数组下标0~3这个范围上 有多少个2 &#xff08;答案为2&…...

多种方式实现安全帽佩戴检测

为什么要佩戴安全帽 在探讨安全帽佩戴检测之前&#xff0c;我们先来了解下安全帽佩戴的必要性&#xff1a; 保护头部免受外力伤害 防止物体打击 在建筑施工、矿山开采、工厂车间等场所&#xff0c;经常会有高空坠物的风险。例如在建筑工地上&#xff0c;可能会有工具、材料、…...

项目实战:从零构建基于Miniedit与Floodlight的SDN可视化拓扑

1. 为什么需要SDN可视化工具&#xff1f; 刚接触软件定义网络&#xff08;SDN&#xff09;时&#xff0c;最让我头疼的就是命令行配置。记得第一次用Mininet创建拓扑&#xff0c;光是记住那些addHost、addSwitch命令就花了半天时间&#xff0c;更别提调试链路参数时频繁出现的报…...

别再当‘炼丹师’了!用SHAP值给你的PyTorch模型做个‘CT扫描’,一眼看懂特征在干嘛

用SHAP值透视PyTorch模型&#xff1a;从黑箱到透明决策的工程实践 当你的深度学习模型在测试集上表现优异&#xff0c;却在生产环境中频频失误时&#xff0c;是否曾怀疑过那些隐藏在权重矩阵背后的"暗箱操作"&#xff1f;传统模型评估指标就像体检报告上的数字&#…...

MedGemma-X参数详解:top_k=50在避免幻觉与保持临床相关性间的平衡

MedGemma-X参数详解&#xff1a;top_k50在避免幻觉与保持临床相关性间的平衡 1. 引言&#xff1a;智能影像诊断的新挑战 在医疗AI领域&#xff0c;我们面临着一个关键挑战&#xff1a;如何在保持模型创造力的同时&#xff0c;确保输出的临床准确性。MedGemma-X作为新一代多模…...

LightOnOCR-2-1B作品分享:多语言识别效果实测,支持中日英法等

LightOnOCR-2-1B作品分享&#xff1a;多语言识别效果实测&#xff0c;支持中日英法等 1. 引言&#xff1a;多语言OCR的现实需求 在全球化的商业环境中&#xff0c;企业每天需要处理来自不同国家的文档、票据和表单。传统OCR工具往往面临两大挑战&#xff1a;一是对多语言混合…...

OpenClaw故障排查大全:千问3.5-27B接口连接7类错误解决

OpenClaw故障排查大全&#xff1a;千问3.5-27B接口连接7类错误解决 1. 为什么需要这份排查指南 上周我在本地部署千问3.5-27B模型时&#xff0c;OpenClaw死活连不上模型接口。那天晚上我对着ECONNREFUSED错误折腾到凌晨两点&#xff0c;试了各种方法才发现是网关端口被占用了…...

避坑指南:MediaPipe安装常见报错解决方案(附虚拟环境配置技巧)

MediaPipe实战避坑手册&#xff1a;从环境配置到高效开发的完整指南 在计算机视觉和机器学习领域&#xff0c;MediaPipe作为Google开源的多媒体处理框架&#xff0c;因其强大的实时感知能力和跨平台特性而备受开发者青睐。然而&#xff0c;许多开发者在初次接触MediaPipe时&…...

集成显卡救星:手把手教你在云服务器上跑通3D Gaussian Splatting(含CUDA 11.8配置)

集成显卡救星&#xff1a;云端实战3D高斯点渲染全流程指南 当我在宿舍里盯着那台只有集成显卡的旧笔记本时&#xff0c;突然意识到——或许云端才是解锁3D重建技术的钥匙。去年参加计算机图形学研讨会时&#xff0c;看到那些令人惊艳的3D高斯点渲染&#xff08;3D Gaussian Spl…...

解决Vivado中FDCP时序警告的实战技巧

1. 理解FDCP时序警告的本质 在Vivado开发过程中遇到FDCP时序警告时&#xff0c;很多开发者第一反应是"这又是个莫名其妙的警告"。但根据我处理过的二十多个类似案例&#xff0c;这个警告其实是个非常负责的"哨兵"&#xff0c;它在提醒你电路可能存在严重的…...

5. 你是怎么理解ES6中 Promise的?使用场景?

一、先给面试官一个结论版如果面试官问 "你怎么理解 Promise&#xff1f;" &#xff0c;不要上来就背 API。 更好的开场是先说本质&#xff1a;Promise 是 ES6 引入的一种用于处理异步操作的解决方案。 它的核心价值是&#xff1a;把异步操作的最终结果&#xff08;成…...

Twitter运营完整流程:从0到引流获客全流程拆解(2026)

在当前海外营销环境中&#xff0c;Twitter&#xff08;X&#xff09;已经成为获取流量和客户的重要渠道之一。但很多人在实际操作中都会遇到问题&#xff1a;不知道从哪里开始做了很久没有效果有流量但没有转化不清楚完整流程那么&#xff0c;Twitter运营到底该怎么做&#xff…...