Qt的QBuffer
文章目录
- 构造函数
- 例子
- Public Functions
- 返回缓冲区的引用:buffer()
- 返回缓冲区的引用(const):buffer()
- 返回缓冲区的数据:data()
- 指定内部缓冲区:setBuffer(QByteArray * byteArray)
- 设置缓冲区的内容:setData(const QByteArray & data)
- 设置缓冲区的内容:setData(const char * data, int size)
- Reimplemented Public Functions
- 判断是否已经到结尾:atEnd()
- 读取完整行:atEnd()
- 关闭缓冲区:close()
- 打开方式:open(OpenMode flags)
- 返回当前位置:pos()
- 移动到指定位置:seek(qint64 pos)
- 返回数据大小:size()
- Reimplemented Protected Functions
- 读取数据:readData(char * data, qint64 len)
- 写入数据:writeData(const char * data, qint64 len)
构造函数
QBuffer(QObject * parent = 0)
用给定的父类构造一个空缓冲区。可以调用setData()用数据填充缓冲区,也可以在写模式下打开缓冲区并使用write()
QBuffer(QByteArray * byteArray, QObject * parent = 0)
1.构造一个QBuffer,使用byteArray指向的QByteArray作为内部缓冲区,并使用给定的父缓冲区。调用者负责确保byteArray在QBuffer被销毁或调用setBuffer()更改缓冲区之前保持有效。QBuffer不接受QByteArray的所有权
2.如果您以只写模式或读写模式打开缓冲区并向QBuffer写入一些内容,byteArray将被修改
例子:(官方帮助文档的)
QByteArray byteArray("abc");
QBuffer buffer(&byteArray);
buffer.open(QIODevice::WriteOnly);
//不向后移动,会直接重写内容哦。
buffer.seek(3);
buffer.write("def", 3);
buffer.close();
// byteArray == "abcdef"
例子
点击这里进入例子
Public Functions
返回缓冲区的引用:buffer()
QByteArray & QBuffer::buffer()
返回对QBuffer内部缓冲区的引用。您可以使用它来修改QBuffer背后的QByteArray
返回缓冲区的引用(const):buffer()
const QByteArray & QBuffer::buffer() const
返回对QBuffer内部缓冲区的引用。您可以使用它来修改QBuffer背后的QByteArray
返回缓冲区的数据:data()
const QByteArray & QBuffer::data() const
返回缓冲区中包含的数据
指定内部缓冲区:setBuffer(QByteArray * byteArray)
void QBuffer::setBuffer(QByteArray * byteArray)
使QBuffer使用byteArray指向的QByteArray作为它的内部缓冲区。调用者负责确保byteArray在QBuffer被销毁或调用setBuffer()更改缓冲区之前保持有效。QBuffer不接受QByteArray的所有权
设置缓冲区的内容:setData(const QByteArray & data)
void QBuffer::setData(const QByteArray & data)
将内部缓冲区的内容设置为data。这与将数据分配给buffer()是一样的
设置缓冲区的内容:setData(const char * data, int size)
void QBuffer::setData(const char * data, int size)
将内部缓冲区的内容设置为data的第一个size字节。
Reimplemented Public Functions
判断是否已经到结尾:atEnd()
bool QBuffer::atEnd() const
重新实现从QIODevice: atEnd ()。
读取完整行:atEnd()
bool QBuffer::canReadLine() const
如果可以从设备读取完整的数据行,则返回true;否则返回假
关闭缓冲区:close()
void QBuffer::close()
关闭缓冲区
打开方式:open(OpenMode flags)
bool QBuffer::open(OpenMode flags)
以什么方式打开文件
返回当前位置:pos()
qint64 QBuffer::pos() const
获取当前流位置
移动到指定位置:seek(qint64 pos)
bool QBuffer::seek(qint64 pos)
移动到流指定位置
返回数据大小:size()
qint64 QBuffer::size() const
返回文件大小
Reimplemented Protected Functions
读取数据:readData(char * data, qint64 len)
qint64 QBuffer::readData(char * data, qint64 len)
将设备中的最大len读入data,并返回读取的字节数,如果发生错误则返回-1
写入数据:writeData(const char * data, qint64 len)
qint64 QBuffer::writeData(const char * data, qint64 len)
从data写到设备的最大字len。返回写入的字节数,如果发生错误则返回-1
Qt的QBuffer相关推荐
- QT的QBuffer类的使用
详细说明 QBuffer类为QByteArray提供QIODevice接口. QBuffer允许您使用QIODevice接口访问QByteArray. QByteArray被视为标准的随机访问文件. ...
- QBuffer 用法理解
QBuffer为Qtl里面的缓冲区类 缓冲区的本质就是一段连续的存储空间 在Qt中QBuffer可以看为一个特殊的IO设备 文件辅助类(QDataStream ,QTextStream)可以直接作用于 ...
- Qt 图片压缩 指定文件大小和尺寸
#include <QApplication> #include <QDebug> #include <QImage> #include <QPixmap&g ...
- python linux上屏幕截图_在Linux上通过Python脚本拍摄屏幕截图
我想通过python脚本截取屏幕截图,并毫不干扰地保存它. 我只对Linux解决方案感兴趣,应该支持任何基于X的环境. 任何原因您不能使用scrot? 很想检查以下建议方法的性能. 新链接:manpa ...
- Qt中的缓冲区QBuffer
文章目录 1 Qt中的缓冲区QBuffer 1 Qt中的缓冲区QBuffer Qt中缓冲区的概念: 缓冲区的本质为一段连续的存储空间. QBuffer是Qt中缓冲区相关的类. 在Qt中可以将缓冲区看作 ...
- 4.关于QT中的QFile文件操作,QBuffer,Label上添加QPixmap,QByteArray和QString之间的区别,QTextStream和QDataStream的区别,QT内存映射(
新建项目13IO 13IO.pro HEADERS += \ MyWidget.h SOURCES += \ MyWidget.cpp QT += gui widgets network CON ...
- qt 串口粘包_Qt Socket 传输图片——图像拆包、组包、粘包处理
之前给大家分享了一个使用python发图片数据.Qt server接收图片的Demo.之前的Demo用于传输小字节的图片是可以的,但如果是传输大的图片,使用socket无法一次完成发送该怎么办呢?本次 ...
- Qt学习之路(56): 二进制文件读写
今天开始进入 Qt 的另一个部分:文件读写,也就是 IO.文件读写在很多应用程序中都是需要的.Qt 通过 QIODevice 提供了IO的抽象,这种设备(device)具有读写字节块的能力.常用的IO ...
- QT+OPENCV实现录屏功能
本文使用QT+opencv来实现对指定窗体画面录制,并保存为avi文件. (1)获取窗体界面 QScreen类有一个grabWindow函数,可以用来获取窗体的画面,这个函数使用很简单,就是传入窗体句 ...
最新文章
- textbox matlab,matlab gui 编程文本框更新
- SpringBoot(十) :邮件服务
- ros学习(1)工作空间创建和功能包
- 相对熵与交叉熵_熵、KL散度、交叉熵
- 洛谷P2851 [USACO06DEC]最少的硬币The Fewest Coins(完全背包+多重背包)
- 2012总结--第10篇--工作篇
- instr函数 mysql_mysql数据库中查找字串出现的位置instr函数
- 007_控制器可扩展性
- Android使用SeekBar
- JAVA Useful Program(1)
- C语言 常用标准库函数 初学者常用
- 2015高教杯全国大学生数学建模竞赛论文
- C#调用阿里云短信接口
- 微信小问题2021-10-14
- MPB:南京​湖泊所王建军组-​湖泊沉积物的野外采集方法
- 2022 CCF中国软件大会(CCF Chinasoft)“CCF-华为胡杨林基金-系统软件专项”论坛成功召开...
- js获取树形JSON数据根节点到任一子节点路径
- 【Arduino+ESP32专题】一起来读INA3221数据手册 1
- linux 获取文件父目录权限,Linux 文件权限中,操作一个文件需要父目录的那些权限?...
- imx6q android nfs normal boot log