[转] - QBuffer类参考

QBuffer类参考

QBuffer类是一个操作QByteArray的输入/输出设备。 详情请见……

#include <qbuffer.h>

继承了QIODevice。

所有成员函数的列表。

公有成员

  • QBuffer ()
  • QBuffer ( QByteArray buf )
  • ~QBuffer ()
  • QByteArray buffer () const
  • bool setBuffer ( QByteArray buf )
  • virtual Q_LONG writeBlock ( const char * p, Q_ULONG len )
  • Q_LONG writeBlock ( const QByteArray & data )

详细描述

QBuffer类是一个操作QByteArray的输入/输出设备。

QBuffer是用来读写内存缓存的。它通常与QTextStream或QDataStream一起使用。QBuffer有一个相关联的QByteArray用来存储缓冲数据。缓冲的大小(size())会根据所写的数据自动调整。

构造函数QBuffer(QByteArray)以一个现有的字节数组创建一个QBuffer。字节数组也可以由setBuffer()来设置。向QBuffer写将会更改初始字节数组,因为QByteArray是明确共享。

在使用之前使用open()来打开缓存并且设置模式(只读、只写等等)。close()可以关闭缓存。在重新打开或者调用setBuffer()之前缓存必须被关闭。

使用QBuffer的一个普通方式是通过QDataStream或QTextStream,它们可以通过一个QBuffer参数来构造。为了方便,QDataStream和QTextStream也可以使用一个QByteArray参数来构造。这些构造函数创建并且打开一个内部的QBuffer。

注意QTextStream也可以操作QString(一个Unicode字符串),而QBuffer不能。

你也可以直接通过标准的QIODevice函数readBlock()、writeBlock()、readLine()、at(),、getch()、putch()和ungetch()来使用QBuffer。

也可以参考QFile、QDataStream、QTextStream、QByteArray、共享类、 集合类和输入/输出和网络。


成员函数文档

QBuffer::QBuffer ()

构造一个空的缓存。

QBuffer::QBuffer ( QByteArray buf )

操作buf来构造一个缓存。 如果你使用写模式(IO_WriteOnly或者IO_ReadWrite)打开缓存并且写一些东西到缓存,buf将被修改。

实例:

    QCString str = "abc";
    QBuffer b( str );
    b.open( IO_WriteOnly );
    b.at( 3 ); // 定位到第四个字符(终结符\0)
    b.writeBlock( "def", 4 ); // 写入“def”,包括终结符\0
    b.close();
    // 现在,str就是“abcdef”和一个终结符\0
  

也可以参考setBuffer()。

QBuffer::~QBuffer ()

析构缓存。

QByteArray QBuffer::buffer () const

返回这个缓存的字节数组。

也可以参考a href="#setBuffer">setBuffer()。

bool QBuffer::setBuffer ( QByteArray buf )

把缓存的内容替换为buf

当isOpen()为真时,这个操作也许不能被完成。

注意如果你使用写模式(IO_WriteOnly或者IO_ReadWrite)打开缓存并且写一些东西到缓存,buf也会被修改因为QByteArray是一个明显共享类。

也可以参考buffer()、open()和close()。

Q_LONG QBuffer::writeBlock ( const char * p, Q_ULONG len ) [虚]

p中的len字节写到缓存的当前索引位置,如果需要的话,将会覆盖原有的数据并且扩充缓存。返回实际所写的字节数量。

如果发生任何错误,返回-1。

也可以参卡readBlock()。

Reimplemented from QIODevice.

Q_LONG QBuffer::writeBlock ( const QByteArray & data )

这是一个重载成员函数,提供方便。它的行为和上面的函数基本一致。

这个方便的函数使用data与调用writeBlock( data.data(), data.size() )是一样的。

时间: 2024-10-11 16:42:26

[转] - QBuffer类参考的相关文章

(转)Inno Setup入门(十六)——Inno Setup类参考(2)

本文转载自:http://blog.csdn.net/yushanddddfenghailin/article/details/17250967 这里将接着在前面的基础上介绍如何在自定义页面上添加按钮.按钮属于Tbutton类,该类继承自TbuttonControl,类定义如下: TButton = class(TButtonControl) property Cancel: Boolean; read write; property Caption: String; read write; p

(转)Inno Setup入门(二十一)——Inno Setup类参考(7)

本文转载自:http://blog.csdn.net/yushanddddfenghailin/article/details/17268435 复选框 复选框(CheckBox)用于多个并不互斥的几个选项中作出一个或者多选择,例如字体可以有粗体.斜体和下划线,这三种状态可以任意组合,像这样的选项可以采用复选框实现.Pascal脚本中对应的类是TcheckBox,其定义如下:< xmlnamespace prefix ="o" ns ="urn:schemas-micr

(转)Inno Setup入门(十七)——Inno Setup类参考(3)

本文转载自:http://blog.csdn.net/yushanddddfenghailin/article/details/17250993 标签(Label)是用来显示文本的主要组件之一,也是窗口应用程序中最常用的组件之一,通过对标签的使用,将能够给用户提供更加详细的信息. Pascal脚本中的标签由类TlLabel实现,该类定义如下: TLabel = class(TCustomLabel) property Alignment: TAlignment; read write; prop

(转)Inno Setup入门(二十二)——Inno Setup类参考(8)

本文转载自:http://blog.csdn.net/yushanddddfenghailin/article/details/17268473 列表框 列表框(ListBox)是Windows应用程序中重要的输入手段,其中包括多个选项用户可以从其中选择一个或者多个,程序根据用户的选择做出相应的处理,列表框在外观上和存储框类似,但是行为却有很大的不同,列表框中项一般是预先给定的,而存储框则可以让用户进行输入,并且列表框中的项被选择之后也会触发事件.Pascal脚本中列表框的类由TlistBox实

(转)Inno Setup入门(二十)——Inno Setup类参考(6)

本文转载自:http://blog.csdn.net/yushanddddfenghailin/article/details/17251041 存储框 存储框也是典型的窗口可视化组件,同编辑框类似,可以输入.显示文本,但是和编辑框不同的是,编辑框只能编辑.显示单行文本,而存储框则可以对多行文本进行操作.存储框的类定义如下:< xmlnamespace prefix ="o" ns ="urn:schemas-microsoft-com:office:office&qu

(转)Inno Setup入门(十八)——Inno Setup类参考(4)

本文转载自:http://blog.csdn.net/yushanddddfenghailin/article/details/17251009 编辑框 编辑框也叫文本框,是典型的窗口可视化组件,既可以用来输入文本,也可以用来显示文本,是程序设计中最常用的组件之一,可以获取用户输入的许多信息.Pascal中的编辑框由类Tedit实现,该类的定义如下: TEdit = class(TCustomEdit) property AutoSelect: Boolean; read write; prop

(转)Inno Setup入门(十五)——Inno Setup类参考(1)

本文转载自:http://blog.csdn.net/yushanddddfenghailin/article/details/17250955 nno setup脚本能够支持许多的类,这些类使得安装程序的功能得到很大的加强,通过对这些类的使用,将会创建出许多让人惊奇的安装程序,下面开始类的学习. 创建自定义向导页 自定义向导页需要在InitializeWizard事件函数中创建,通过使用CreateCustomPage函数创建一个空的页面,或者使用CreateInput...Page和Crea

(转)Inno Setup入门(十九)——Inno Setup类参考(5)

本文转载自:http://blog.csdn.net/yushanddddfenghailin/article/details/17251019 单选按钮 单选按钮在安装中也很常见,例如同一个程序可以选择安装不同的性质的功能,例如选择32位或者64位等,两者是排他性的,因此可以通过单选按钮(RadioButton)来实现,在同一个容器中放置的单选按钮是自动带有排他性的,Pascal脚本中单选按钮的定义如下: TRadioButton = class(TButtonControl) propert

QWidget类参考

QWidget类是所有用户界面对象的基类. 详情请见-- #include <qwidget.h> 继承QObject和QPaintDevice. 被QButton.QFrame.QDialog.QComboBox.QDataBrowser.QDataView.QDateTimeEdit.QDesktopWidget.QDial.QDockArea.QGLWidget.QHeader.QMainWindow.QNPWidget.QScrollBar.QSizeGrip.QSlider.QSpi