[QtCore module]
该Q缓冲器类提供了一个QIODevice接口为一QByteArray。More…
继承QIODevice。
Methods
__init__ (self, QObject parent = None)
__init__ (self, QByteArray byteArray, QObject parent = None)
bool atEnd (self)
QByteArray buffer (self)
bool canReadLine (self)
close (self)
connectNotify (self, SIGNAL())
QByteArray data (self)
disconnectNotify (self, SIGNAL())
bool open (self, QIODevice.OpenMode openMode)
int pos (self)
str readData (self, int maxlen)
bool seek (self, int off)
setBuffer (self, QByteArray a)
setData (self, QByteArray data)
setData (self, str adata)
int size (self)
int writeData (self, str data)
Detailed Description
该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](docs_qbytearray.html) byteArray;
QBuffer buffer(&byteArray);
buffer.open([QIODevice](docs_qiodevice.html).WriteOnly);
[QDataStream](docs_qdatastream.html) out(&buffer);
out << [QApplication](docs_qapplication.html).palette();
实际上,我们把应用程序的QPalette成一个字节数组。以下是如何从读取数据QByteArray:
[QPalette](docs_qpalette.html) palette;
QBuffer buffer(&byteArray);
buffer.open([QIODevice](docs_qiodevice.html).ReadOnly);
[QDataStream](docs_qdatastream.html) in(&buffer);
in >> palette;
QTextStream和QDataStream还提供了方便的构造函数,它接受一个QByteArray并创建一个Q缓冲器幕后。
Q缓冲器发出readyRead( )当新的数据到达缓冲区。通过连接到这个信号,就可以使用Q缓冲器处理之前来存储临时数据。例如,您可以将缓冲区传递到QFtp从FTP服务器上下载一个文件时。每当一个新的数据有效载荷被下载,readyRead( )被发射,并且可以处理刚到的数据。 Q缓冲器还发出bytesWritten( )每次新的数据已经被写入到缓冲区。
Method Documentation
QBuffer.__init__ (self, QObject parent = None)
该parent的说法,如果不是没有,原因self通过Qt的,而不是PyQt的拥有。
构造一个空的缓冲区与给定parent。您可以致电setData()来填充数据的缓冲区,也可以在写入模式,并使用它打开write( ) 。
See also open( ) 。
QBuffer.__init__ (self, QByteArray byteArray, QObject parent = None)
该parent的说法,如果不是没有,原因self通过Qt的,而不是PyQt的拥有。
构造一个QBuffer使用该QByteArray指向byteArray作为其内部缓冲器,并与给定的parent。来电者是负责确保byteArray保持有效,直到QBuffer被破坏,或直到setBuffer( )被调用来更改缓冲区。QBuffer不走的所有权QByteArray。
如果您在只写模式打开的缓冲区或读写模式和写的东西进入QBuffer,byteArray将被修改。
例如:
[QByteArray](docs_qbytearray.html) byteArray("abc");
[QBuffer](docs_qbuffer.html) buffer(&byteArray);
buffer.open([QIODevice](docs_qiodevice.html).WriteOnly);
buffer.seek(3);
buffer.write("def", 3);
buffer.close();
// byteArray == "abcdef"
See also open( )setBuffer()和setData( ) 。
bool QBuffer.atEnd (self)
从重新实现QIODevice.atEnd( ) 。
QByteArray QBuffer.buffer (self)
返回一个引用QBuffer的内部缓冲区。你可以用它来修改QByteArray后面的QBuffer的背部。
See also setBuffer()和data( ) 。
bool QBuffer.canReadLine (self)
从重新实现QIODevice.canReadLine( ) 。
QBuffer.close (self)
从重新实现QIODevice.close( ) 。
QBuffer.connectNotify (self, SIGNAL())
QByteArray QBuffer.data (self)
[
返回包含在缓冲区中的数据。
](docs_qbytearray.html)
See also setData()和setBuffer( ) 。
QBuffer.disconnectNotify (self, SIGNAL())
bool QBuffer.open (self, QIODevice.OpenMode openMode)
从重新实现QIODevice.open( ) 。
int QBuffer.pos (self)
从重新实现QIODevice.pos( ) 。
str QBuffer.readData (self, int maxlen)
从重新实现QIODevice.readData( ) 。
bool QBuffer.seek (self, int off)
从重新实现QIODevice.seek( ) 。
QBuffer.setBuffer (self, QByteArray a)
品牌QBuffer使用QByteArray指向byteArray作为其内部缓冲器中。来电者是负责确保byteArray保持有效,直到QBuffer被破坏,或直到setBuffer ( )被调用来更改缓冲区。QBuffer不走的所有权QByteArray。
什么都不做,如果isOpen()是真实的。
如果您在只写模式打开的缓冲区或读写模式和写的东西进入QBuffer,byteArray将被修改。
例如:
[QByteArray](docs_qbytearray.html) byteArray("abc");
[QBuffer](docs_qbuffer.html) buffer;
buffer.setBuffer(&byteArray);
buffer.open([QIODevice](docs_qiodevice.html).WriteOnly);
buffer.seek(3);
buffer.write("def", 3);
buffer.close();
// byteArray == "abcdef"
If byteArray为0时,缓存器创建其自己的内部QByteArray去努力。这个字节数组初始为空。
See also buffer( )setData()和open( ) 。
QBuffer.setData (self, QByteArray data)
设置内部缓冲区的内容被data。这是相同的分配data至buffer( ) 。
什么都不做,如果isOpen()是真实的。
See also data()和setBuffer( ) 。
QBuffer.setData (self, str adata)
这是一个重载函数。
设置内部缓冲区的内容是第一size字节data。
int QBuffer.size (self)
从重新实现QIODevice.size( ) 。
int QBuffer.writeData (self, str data)
从重新实现QIODevice.writeData( ) 。