文章目录

  • 构造函数
  • 例子
  • 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相关推荐

  1. QT的QBuffer类的使用

    详细说明 QBuffer类为QByteArray提供QIODevice接口. QBuffer允许您使用QIODevice接口访问QByteArray. QByteArray被视为标准的随机访问文件. ...

  2. QBuffer 用法理解

    QBuffer为Qtl里面的缓冲区类 缓冲区的本质就是一段连续的存储空间 在Qt中QBuffer可以看为一个特殊的IO设备 文件辅助类(QDataStream ,QTextStream)可以直接作用于 ...

  3. Qt 图片压缩 指定文件大小和尺寸

    #include <QApplication> #include <QDebug> #include <QImage> #include <QPixmap&g ...

  4. python linux上屏幕截图_在Linux上通过Python脚本拍摄屏幕截图

    我想通过python脚本截取屏幕截图,并毫不干扰地保存它. 我只对Linux解决方案感兴趣,应该支持任何基于X的环境. 任何原因您不能使用scrot? 很想检查以下建议方法的性能. 新链接:manpa ...

  5. Qt中的缓冲区QBuffer

    文章目录 1 Qt中的缓冲区QBuffer 1 Qt中的缓冲区QBuffer Qt中缓冲区的概念: 缓冲区的本质为一段连续的存储空间. QBuffer是Qt中缓冲区相关的类. 在Qt中可以将缓冲区看作 ...

  6. 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 ...

  7. qt 串口粘包_Qt Socket 传输图片——图像拆包、组包、粘包处理

    之前给大家分享了一个使用python发图片数据.Qt server接收图片的Demo.之前的Demo用于传输小字节的图片是可以的,但如果是传输大的图片,使用socket无法一次完成发送该怎么办呢?本次 ...

  8. Qt学习之路(56): 二进制文件读写

    今天开始进入 Qt 的另一个部分:文件读写,也就是 IO.文件读写在很多应用程序中都是需要的.Qt 通过 QIODevice 提供了IO的抽象,这种设备(device)具有读写字节块的能力.常用的IO ...

  9. QT+OPENCV实现录屏功能

    本文使用QT+opencv来实现对指定窗体画面录制,并保存为avi文件. (1)获取窗体界面 QScreen类有一个grabWindow函数,可以用来获取窗体的画面,这个函数使用很简单,就是传入窗体句 ...

最新文章

  1. textbox matlab,matlab gui 编程文本框更新
  2. SpringBoot(十) :邮件服务
  3. ros学习(1)工作空间创建和功能包
  4. 相对熵与交叉熵_熵、KL散度、交叉熵
  5. 洛谷P2851 [USACO06DEC]最少的硬币The Fewest Coins(完全背包+多重背包)
  6. 2012总结--第10篇--工作篇
  7. instr函数 mysql_mysql数据库中查找字串出现的位置instr函数
  8. 007_控制器可扩展性
  9. Android使用SeekBar
  10. JAVA Useful Program(1)
  11. C语言 常用标准库函数 初学者常用
  12. 2015高教杯全国大学生数学建模竞赛论文
  13. C#调用阿里云短信接口
  14. 微信小问题2021-10-14
  15. MPB:南京​湖泊所王建军组-​湖泊沉积物的野外采集方法
  16. 2022 CCF中国软件大会(CCF Chinasoft)“CCF-华为胡杨林基金-系统软件专项”论坛成功召开...
  17. js获取树形JSON数据根节点到任一子节点路径
  18. 【Arduino+ESP32专题】一起来读INA3221数据手册 1
  19. linux 获取文件父目录权限,Linux 文件权限中,操作一个文件需要父目录的那些权限?...
  20. imx6q android nfs normal boot log

热门文章

  1. 怎么调整计算机显示屏,电脑显示器画面怎么调整
  2. 【SSRF技巧拓展】————8、微博某处SSRF可GET SHELL
  3. 大批,程序员被劝退!
  4. KNN最近邻算法理解
  5. C# 调用微软自带的语音识别
  6. 诺基亚衰落的原因及其如何走去困境
  7. 股市投资必修课二十六--商业竞争决定生死
  8. IDEA查看Event log
  9. 学习篇之华为快应用的开发(一)
  10. 介绍近期的一篇综述:AI系统安全的实用方法