StupidBeauty
Read times:436Posted at:Mon May 21 17:26:26 2012
- no title specified

Qt4.8文档翻译:QBuffer类参考,QBuffer Class Reference

详细描述

QBuffer类为 QByteArray 提供一个 QIODevice 接口。

QBuffer使得妳可以通过 QIODevice 接口来访问一个 QByteArray 。那个 QByteArray 会被当成一个标准的随机访问文件。示例:

QBuffer buffer;

char ch;

buffer.open( QBuffer ::ReadWrite);

buffer.write("Qt rocks!");

buffer.seek(0);

buffer.getChar(&ch); // ch == 'Q'

buffer.getChar(&ch); // ch == 't'

buffer.getChar(&ch); // ch == ' '

buffer.getChar(&ch); // ch == 'r'

当妳创建一个QBuffer 时,默认情况下会自动创建一个内部的 QByteArray 缓存。妳可通过调用 buffer ()来直接访问这个缓存。妳还可以让QBuffer 使用一个已有的 QByteArray :通过调用 setBuffer ();或者将妳的字符数组传递给 QBuffer 的构造函数。

调用 open ()来打开缓存。然后调用 write ()或 putChar ()来向缓存中写数据,调用 read ()、 readLine ()、 readAll ()或 getChar ()来从缓存中读数据。 size ()会返回此缓存当前的大小,妳可以通过调用 seek ()来将游标移动到缓存中的任何位置。当妳对这个缓存操作完毕时,调用 close ()。

以下代码片段演示的是如何使用 QDataStream 和QBuffer 来向一个 QByteArray 中输出数据:

QByteArray byteArray;

QBuffer buffer(&byteArray);

buffer.open( QIODevice ::WriteOnly);

QDataStream out(&buffer);

out << QApplication ::palette();

在这里,我们将程序的 QPalette 转换成咯一个字符数组。以下是从 QByteArray 中读取数据的方法:

QPalette palette;

QBuffer buffer(&byteArray);

buffer.open( QIODevice ::ReadOnly);

QDataStream in(&buffer);

in >> palette;

另外, QTextStream QDataStream 还提供咯便于使用的以 QByteArray 为参数的构造函数,它们会在背后创建一个QBuffer。

当有新数据到达缓存中时,QBuffer 会发射 readyRead ()信号。通过连接到这个信号,妳可以用QBuffer储存未经处理的临时数据。例如,妳可以在从一个FTP 服务器下载文件时将缓存传递给 QFtp 。一旦有新的文件数据被下载下来,就会发射 readyRead (),然后妳就可以处理刚刚来到的数据。每当有新数据被写入缓存中去时,QBuffer还会发射 bytesWritten ()信号。

参考 QFile QDataStream QTextStream QByteArray

Your opinions
Your name:Email:Website url:Opinion content:
- no title specified

HxLauncher: Launch Android applications by voice commands

 
Recent comments
2017年4月~2019年4月垃圾短信排行榜Posted at:Thu Sep 26 04:51:48 2024
Qt5.7文档翻译:QWebEngineCookieStore类,QWebEngineCookieStore ClassPosted at:Fri Aug 11 06:50:35 2023盲盒kill -9 18289 Grebe.20230517.211749.552.mp4