QBuffer¶
The
QBufferclass provides aQIODeviceinterface for aQByteArray. More…

Detailed Description¶
QBufferallows you to access aQByteArrayusing theQIODeviceinterface. TheQByteArrayis treated just as a standard random-accessed file. Example:buffer = QBuffer() buffer.open(QBuffer.ReadWrite) buffer.write("Qt rocks!") buffer.seek(0) ch = buffer.getChar() # ch == 'Q' ch = buffer.getChar() # ch == 't' ch = buffer.getChar() # ch == ' ' ch = buffer.getChar() # ch == 'r'By default, an internal
QByteArraybuffer is created for you when you create aQBuffer. You can access this buffer directly by callingbuffer(). You can also useQBufferwith an existingQByteArrayby callingsetBuffer(), or by passing your array toQBuffer‘s constructor.Call
open()to open the buffer. Then callwrite()orputChar()to write to the buffer, andread(),readLine(),readAll(), orgetChar()to read from it.size()returns the current size of the buffer, and you can seek to arbitrary positions in the buffer by callingseek(). When you are done with accessing the buffer, callclose().The following code snippet shows how to write data to a
QByteArrayusingQDataStreamandQBuffer:byteArray = QByteArray() buffer = QBuffer(byteArray) buffer.open(QIODevice.WriteOnly) out = QDataStream(buffer) out << QApplication.palette()Effectively, we convert the application’s
QPaletteinto a byte array. Here’s how to read the data from theQByteArray:palette = QPalette() buffer = QBuffer(byteArray) buffer.open(QIODevice.ReadOnly) in = QDataStream(buffer) in >> palette
QTextStreamandQDataStreamalso provide convenience constructors that take aQByteArrayand that create aQBufferbehind the scenes.
QBufferemitsreadyRead()when new data has arrived in the buffer. By connecting to this signal, you can useQBufferto store temporary data before processing it.QBufferalso emitsbytesWritten()every time new data has been written to the buffer.See also
-
class
QBuffer(buf[, parent=None])¶ QBuffer([parent=None])
- param parent
- param buf
Constructs a
QBufferthat uses theQByteArraypointed to bybyteArrayas its internal buffer, and with the givenparent. The caller is responsible for ensuring thatbyteArrayremains valid until theQBufferis destroyed, or untilsetBuffer()is called to change the buffer.QBufferdoesn’t take ownership of theQByteArray.If you open the buffer in write-only mode or read-write mode and write something into the
QBuffer,byteArraywill be modified.Example:
byteArray = QByteArray("abc") buffer = QBuffer(byteArray) buffer.open(QIODevice.WriteOnly) buffer.seek(3) buffer.write("def") buffer.close() # byteArray == "abcdef"
See also
open()setBuffer()setData()Constructs an empty buffer with the given
parent. You can callsetData()to fill the buffer with data, or you can open it in write mode and usewrite().See also
open()
-
PySide2.QtCore.QBuffer.buffer()¶ - Return type
This is an overloaded function.
This is the same as
data().
-
PySide2.QtCore.QBuffer.data()¶ - Return type
Returns the data contained in the buffer.
This is the same as
buffer().See also
setData()setBuffer()
-
PySide2.QtCore.QBuffer.setBuffer(a)¶ - Parameters
a –
QByteArray
Makes
QBufferuses theQByteArraypointed to bybyteArrayas its internal buffer. The caller is responsible for ensuring thatbyteArrayremains valid until theQBufferis destroyed, or until is called to change the buffer.QBufferdoesn’t take ownership of theQByteArray.Does nothing if
isOpen()is true.If you open the buffer in write-only mode or read-write mode and write something into the
QBuffer,byteArraywill be modified.Example:
byteArray = QByteArray("abc") buffer = QBuffer() buffer.setBuffer(byteArray) buffer.open(QIODevice.WriteOnly) buffer.seek(3) buffer.write("def") buffer.close() # byteArray == "abcdef"
If
byteArrayis 0, the buffer creates its own internalQByteArrayto work on. This byte array is initially empty.See also
buffer()setData()open()
-
PySide2.QtCore.QBuffer.setData(data)¶ - Parameters
data –
QByteArray
Sets the contents of the internal buffer to be
data. This is the same as assigningdatatobuffer().Does nothing if
isOpen()is true.See also
data()setBuffer()
© 2018 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.