Home · All Classes · Modules · QSS HELP · QSS 案例 · VER007 HOME |
该Q缓冲器类提供了一个QIODevice接口为一QByteArray。More...
继承QIODevice。
该Q缓冲器类提供了一个QIODevice接口为一QByteArray。
Q缓冲器允许你访问一个QByteArray使用QIODevice接口。该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'
默认情况下,内部QByteArray缓冲区是为你,当你创建一个Q缓冲器创建。您可以直接通过调用访问该缓冲区buffer( ) 。也可以使用ΣQ缓冲与现有QByteArray通过调用setBuffer( ) ,或者通过你的数组Q缓冲器的构造函数。
Call open()打开缓冲区。然后调用write()或putChar( )写入到缓冲区,并read( )readLine( )readAll() ,或getChar()读取它。size()返回缓冲区的当前大小,并且可以通过调用试图在缓冲区中的任意位置seek( ) 。当你与访问缓冲完成后,调用close( ) 。
下面的代码片段显示了如何将数据写入到QByteArray using QDataStream和Q缓冲器:
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并创建一个Q缓冲器幕后。
Q缓冲器发出readyRead( )当新的数据到达缓冲区。通过连接到这个信号,就可以使用Q缓冲器处理之前来存储临时数据。例如,您可以将缓冲区传递到QFtp从FTP服务器上下载一个文件时。每当一个新的数据有效载荷被下载,readyRead( )被发射,并且可以处理刚到的数据。 Q缓冲器还发出bytesWritten( )每次新的数据已经被写入到缓冲区。
该parent的说法,如果不是没有,原因self通过Qt的,而不是PyQt的拥有。
构造一个空的缓冲区与给定parent。您可以致电setData()来填充数据的缓冲区,也可以在写入模式,并使用它打开write( ) 。
See also open( ) 。
该parent的说法,如果不是没有,原因self通过Qt的,而不是PyQt的拥有。
构造一个QBuffer使用该QByteArray指向byteArray作为其内部缓冲器,并与给定的parent。来电者是负责确保byteArray保持有效,直到QBuffer被破坏,或直到setBuffer( )被调用来更改缓冲区。QBuffer不走的所有权QByteArray。
如果您在只写模式打开的缓冲区或读写模式和写的东西进入QBuffer,byteArray将被修改。
例如:
QByteArray byteArray("abc"); QBuffer buffer(&byteArray); buffer.open(QIODevice.WriteOnly); buffer.seek(3); buffer.write("def", 3); buffer.close(); // byteArray == "abcdef"
See also open( )setBuffer()和setData( ) 。
从重新实现QIODevice.atEnd( ) 。
返回一个引用QBuffer的内部缓冲区。你可以用它来修改QByteArray后面的QBuffer的背部。
See also setBuffer()和data( ) 。
从重新实现QIODevice.canReadLine( ) 。
从重新实现QIODevice.close( ) 。
返回包含在缓冲区中的数据。
这是相同的buffer( ) 。
See also setData()和setBuffer( ) 。
从重新实现QIODevice.open( ) 。
从重新实现QIODevice.pos( ) 。
从重新实现QIODevice.readData( ) 。
从重新实现QIODevice.seek( ) 。
品牌QBuffer使用QByteArray指向byteArray作为其内部缓冲器中。来电者是负责确保byteArray保持有效,直到QBuffer被破坏,或直到setBuffer ( )被调用来更改缓冲区。QBuffer不走的所有权QByteArray。
什么都不做,如果isOpen()是真实的。
如果您在只写模式打开的缓冲区或读写模式和写的东西进入QBuffer,byteArray将被修改。
例如:
QByteArray byteArray("abc"); QBuffer buffer; buffer.setBuffer(&byteArray); buffer.open(QIODevice.WriteOnly); buffer.seek(3); buffer.write("def", 3); buffer.close(); // byteArray == "abcdef"
If byteArray为0时,缓存器创建其自己的内部QByteArray去努力。这个字节数组初始为空。
See also buffer( )setData()和open( ) 。
设置内部缓冲区的内容被data。这是相同的分配data至buffer( ) 。
什么都不做,如果isOpen()是真实的。
See also data()和setBuffer( ) 。
这是一个重载函数。
设置内部缓冲区的内容是第一size字节data。
从重新实现QIODevice.size( ) 。
从重新实现QIODevice.writeData( ) 。
PyQt 4.10.3 for X11 | Copyright © Riverbank Computing Ltd and Nokia 2012 | Qt 4.8.5 |