PySide6.QtCore.QDataStream

class QDataStream

QDataStream 类提供了将二进制数据序列化到 QIODevice 的功能。更多

PySide6.QtCore.QDataStream 的继承图

概要

方法

注意

本文档可能包含从C++自动翻译到Python的代码片段。我们始终欢迎对代码片段翻译的贡献。如果您发现翻译问题,您也可以通过在我们的https:/bugreports.qt.io/projects/PYSIDE上创建工单来告知我们。

详细描述

警告

本节包含从C++自动翻译到Python的代码片段,可能包含错误。

数据流是一种编码信息的二进制流,它100%独立于主机的操作系统、CPU或字节顺序。例如,由Windows下的PC写入的数据流可以由运行Solaris的Sun SPARC读取。

你也可以使用数据流来读取/写入原始 未编码 二进制 数据。如果你想要一个“解析”输入流,请参见QTextStream

QDataStream 类实现了 C++ 基本数据类型的序列化,如 charshortintchar * 等。更复杂数据的序列化是通过将数据分解为基本单元来完成的。

数据流与QIODevice紧密合作。一个QIODevice代表一个可以从中读取数据和写入数据的输入/输出介质。QFile类是I/O设备的一个例子。

示例(将二进制数据写入流):

file = QFile("file.dat")
file.open(QIODevice.WriteOnly)
QDataStream out(file) # we will serialize the data into the file
out << QString("the answer is") # serialize a string
out << (qint32)42 # serialize an integer

示例(从流中读取二进制数据):

file = QFile("file.dat")
file.open(QIODevice.ReadOnly)
QDataStream in(file) # read the data serialized from the file
str = QString()
a = qint32()
in >> str >> a # extract "the answer is" and 42

写入流的每个项目都以预定义的二进制格式写入,该格式根据项目的类型而变化。支持的Qt类型包括QBrush、QColor、QDateTime、QFont、QPixmap、QStringQVariant等许多其他类型。有关支持数据流的所有Qt类型的完整列表,请参见序列化Qt数据类型

对于整数,最好始终将其转换为Qt整数类型进行写入,并读取回相同的Qt整数类型。这确保您获得所需大小的整数,并使您免受编译器和平台差异的影响。

枚举可以通过QDataStream进行序列化,而无需手动定义流操作符。枚举类使用声明的大小进行序列化。

初始的I/O设备通常在构造函数中设置,但可以通过setDevice()进行更改。如果你已经到达数据的末尾(或者没有设置I/O设备),atEnd()将返回true。

序列化容器和字符串

序列化格式首先是一个长度指示符,然后是l字节的数据。如果版本小于6.7或元素数量小于0xfffffffe(2^32 -2),则长度指示符是一个quint32。否则,会有一个扩展值0xfffffffe,后面跟着一个quint64表示实际值。此外,对于支持isNull()的容器,它被编码为一个所有位都设置的quint32,没有数据。

举个例子,如果字符串的大小适合32位,char *字符串会被写成一个32位整数,等于字符串的长度,包括'\0'字节,后面跟着字符串的所有字符,包括'\0'字节。如果字符串的大小更大,则写入值0xffffffffe作为扩展大小的标记,后面跟着64位的实际大小。当读取char *字符串时,首先读取4个字节。如果该值不等于0xffffffffe(扩展大小的标记),则这4个字节被视为字符串的32位大小。否则,读取接下来的8个字节并将其视为字符串的64位大小。然后,读取char *字符串的所有字符,包括'\0'终止符。

版本控制

QDataStream 的二进制格式自 Qt 1.0 以来已经发展,并且可能会继续发展以反映 Qt 中的变化。在输入或输出复杂类型时,确保使用相同版本的流(version())进行读取和写入非常重要。如果您需要向前和向后兼容性,可以在应用程序中硬编码版本号:

stream.setVersion(QDataStream.Qt_4_0)

如果你正在生成一个新的二进制数据格式,例如你的应用程序创建的文档的文件格式,你可以使用QDataStream以可移植的格式写入数据。通常,你会写入一个包含魔数字符串和版本号的简短头部,以便为未来的扩展留出空间。例如:

file = QFile("file.xxx")
file.open(QIODevice.WriteOnly)
out = QDataStream(file)
# Write a header with a "magic number" and a version
out << (quint32)0xA0B0C0D0
out << (qint32)123
out.setVersion(QDataStream.Qt_4_0)
# Write the data
out << lots_of_interesting_data

然后使用以下方式读取:

file = QFile("file.xxx")
file.open(QIODevice.ReadOnly)
in = QDataStream(file)
# Read and check the header
magic = quint32()
in >> magic
if magic != 0xA0B0C0D0:
    return XXX_BAD_FILE_FORMAT
# Read the version
version = qint32()
in >> version
if version < 100:
    return XXX_BAD_FILE_TOO_OLD
if version > 123:
    return XXX_BAD_FILE_TOO_NEW
if version <= 110:
    in.setVersion(QDataStream.Qt_3_2)
else:
    in.setVersion(QDataStream.Qt_4_0)
# Read the data
in >> lots_of_interesting_data
if version >= 120:
    in >> data_new_in_XXX_version_1_2
in >> other_interesting_data

您可以选择在序列化数据时使用哪种字节顺序。默认设置为大端序(最高有效位优先)。将其更改为小端序会破坏可移植性(除非读取器也改为小端序)。除非有特殊要求,否则我们建议保留此设置。

读取和写入原始二进制数据

您可能希望直接向/从数据流中读取/写入自己的原始二进制数据。可以使用readRawData()将数据从流中读取到预分配的char *中。同样,可以使用writeRawData()将数据写入流中。请注意,数据的任何编码/解码必须由您自己完成。

类似的一对函数是 readBytes()writeBytes()。它们与它们的原始对应函数的不同之处如下:readBytes() 读取一个 quint32,该值被视为要读取的数据的长度,然后将该数量的字节读入预分配的 char *writeBytes() 写入一个包含数据长度的 quint32,然后是数据。请注意,数据的任何编码/解码(除了长度 quint32)必须由您完成。

读取和写入Qt集合类

Qt容器类也可以序列化到QDataStream。这些包括QListQSetQHashQMap。流操作符被声明为类的非成员。

读取和写入其他Qt类

除了这里记录的重载流操作符之外,任何你可能想要序列化到QDataStream的Qt类都会有适当的流操作符声明为类的非成员:

operator<< = QDataStream(QDataStream , QXxx )
operator>> = QDataStream(QDataStream , QXxx )

例如,以下是声明为QImage类非成员的流操作符:

operator<< = QDataStream(QDataStream stream, QImage image)
operator>> = QDataStream(QDataStream stream, QImage image)

要查看您喜欢的Qt类是否定义了类似的流操作符,请检查类文档页面的相关非成员部分。

使用读取事务

当数据流在异步设备上操作时,数据块可以在任意时间点到达。QDataStream 类实现了一种事务机制,该机制提供了使用一系列流操作符原子地读取数据的能力。例如,您可以通过在连接到 readyRead() 信号的槽中使用事务来处理来自套接字的不完整读取:

in.startTransaction()
str = QString()
a = qint32()
in >> str >> a # try to read packet atomically
if not in.commitTransaction():
    return # wait for more data

如果没有接收到完整的数据包,此代码将流恢复到初始位置,之后需要等待更多数据到达。

腐败与安全

QDataStream 无法抵御损坏的数据输入,因此不应在安全敏感的情况下使用,即使在使用事务时也是如此。事务将帮助确定当前是否可以使用异步设备上当前可用的数据解码有效输入,但会假设可用的数据是正确形成的。

此外,许多QDataStream解封操作符将根据流中的信息分配内存。这些操作符不会验证请求的内存量是否合理,或者是否与流中可用的数据量兼容(例如:解封QByteArrayQString可能会看到请求分配数GB的数据)。

QDataStream 不应该用于来源不可信的内容。应用程序应设计为仅尝试解码来源至少与应用程序本身或其插件一样可信的流。

另请参阅

QTextStream QVariant

class Version

(继承 enum.IntEnum) 此枚举为数据序列化格式版本号提供了符号化的同义词。

常量

描述

QDataStream.Qt_1_0

版本 1 (Qt 1.x)

QDataStream.Qt_2_0

版本 2 (Qt 2.0)

QDataStream.Qt_2_1

版本 3 (Qt 2.1, 2.2, 2.3)

QDataStream.Qt_3_0

版本 4 (Qt 3.0)

QDataStream.Qt_3_1

版本 5 (Qt 3.1, 3.2)

QDataStream.Qt_3_3

版本 6 (Qt 3.3)

QDataStream.Qt_4_0

版本 7 (Qt 4.0, Qt 4.1)

QDataStream.Qt_4_1

版本 7 (Qt 4.0, Qt 4.1)

QDataStream.Qt_4_2

版本 8 (Qt 4.2)

QDataStream.Qt_4_3

版本 9 (Qt 4.3)

QDataStream.Qt_4_4

版本 10 (Qt 4.4)

QDataStream.Qt_4_5

版本 11 (Qt 4.5)

QDataStream.Qt_4_6

版本 12 (Qt 4.6, Qt 4.7, Qt 4.8)

QDataStream.Qt_4_7

与Qt_4_6相同。

QDataStream.Qt_4_8

与Qt_4_6相同。

QDataStream.Qt_4_9

与Qt_4_6相同。

QDataStream.Qt_5_0

版本 13 (Qt 5.0)

QDataStream.Qt_5_1

版本 14 (Qt 5.1)

QDataStream.Qt_5_2

版本 15 (Qt 5.2)

QDataStream.Qt_5_3

与Qt_5_2相同

QDataStream.Qt_5_4

版本 16 (Qt 5.4)

QDataStream.Qt_5_5

与Qt_5_4相同

QDataStream.Qt_5_6

版本 17 (Qt 5.6)

QDataStream.Qt_5_7

与Qt_5_6相同

QDataStream.Qt_5_8

与Qt_5_6相同

QDataStream.Qt_5_9

与Qt_5_6相同

QDataStream.Qt_5_10

与Qt_5_6相同

QDataStream.Qt_5_11

与Qt_5_6相同

QDataStream.Qt_5_12

版本 18 (Qt 5.12)

QDataStream.Qt_5_13

版本 19 (Qt 5.13)

QDataStream.Qt_5_14

与Qt_5_13相同

QDataStream.Qt_5_15

与Qt_5_13相同

QDataStream.Qt_6_0

版本 20 (Qt 6.0)

QDataStream.Qt_6_1

与Qt_6_0相同

QDataStream.Qt_6_2

与Qt_6_0相同

QDataStream.Qt_6_3

与Qt_6_0相同

QDataStream.Qt_6_4

与Qt_6_0相同

QDataStream.Qt_6_5

与Qt_6_0相同

QDataStream.Qt_6_6

版本 21 (Qt 6.6)

QDataStream.Qt_6_7

版本 22 (Qt 6.7)

QDataStream.Qt_6_8

与Qt_6_7相同

另请参阅

setVersion() version()

class ByteOrder

用于读取/写入数据的字节顺序。

常量

描述

QDataStream.BigEndian

最高有效字节优先(默认)

QDataStream.LittleEndian

最低有效字节优先

class Status

此枚举描述了数据流的当前状态。

常量

描述

QDataStream.Ok

数据流运行正常。

QDataStream.ReadPastEnd

数据流已经读取到基础设备数据的末尾。

QDataStream.ReadCorruptData

数据流读取了损坏的数据。

QDataStream.WriteFailed

数据流无法写入底层设备。

QDataStream.SizeLimitExceeded

数据流无法读取或写入数据,因为其大小超过了当前平台支持的限制。例如,在32位平台上尝试读取超过2 GiB的数据时可能会发生这种情况。

class FloatingPointPrecision

用于读取/写入数据的浮点数精度。只有在数据流版本为Qt_4_6或更高时才会生效。

警告

浮点精度必须设置为写入数据流的对象和读取数据流的对象相同的值。

常量

描述

QDataStream.SinglePrecision

数据流中的所有浮点数具有32位精度。

QDataStream.DoublePrecision

数据流中的所有浮点数具有64位精度。

在版本4.6中添加。

__init__()

构建一个没有I/O设备的数据流。

另请参阅

setDevice()

__init__(d)
Parameters:

dQIODevice

构建一个使用I/O设备d的数据流。

另请参阅

setDevice() device()

__init__(a)
Parameters:

aQByteArray

构造一个在字节数组 a 上操作的只读数据流。如果你想写入字节数组,请使用 QDataStream ( QByteArray *, int)。

由于 QByteArray 不是 QIODevice 的子类,内部创建了一个 QBuffer 来包装字节数组。

__init__(a, flags)
Parameters:

构建一个在字节数组 a 上操作的数据流。mode 描述了设备的使用方式。

或者,如果您只想从字节数组中读取,可以使用 QDataStream (const QByteArray &)。

由于 QByteArray 不是 QIODevice 的子类,内部会创建一个 QBuffer 来包装字节数组。

abortTransaction()

中止读取事务。

此函数通常用于在高级协议错误或流同步丢失后丢弃事务。

如果在内部事务上调用,中止操作将委托给最外层的事务,随后启动的内部事务将被迫失败。

对于最外层的事务,丢弃流的恢复点和任何内部重复的数据。不会影响流的当前读取位置。

设置数据流的状态为

atEnd()
Return type:

布尔

如果I/O设备已达到结束位置(流的末尾或文件的末尾)或未设置I/O设备,则返回true;否则返回false

另请参阅

atEnd()

byteOrder()
Return type:

ByteOrder

返回当前的字节顺序设置——BigEndianLittleEndian

另请参阅

setByteOrder()

commitTransaction()
Return type:

布尔

完成一个读取事务。如果在事务期间没有发生读取错误,则返回true;否则返回false

如果在内部事务上调用,提交将被推迟,直到最外层的 commitTransaction()、rollbackTransaction()abortTransaction() 调用发生。

否则,如果流状态指示读取超过数据末尾,此函数将流数据恢复到startTransaction()调用的点。当这种情况发生时,您需要等待更多数据到达,然后开始一个新的事务。如果数据流读取了损坏的数据或任何内部事务被中止,此函数将中止事务。

device()
Return type:

QIODevice

返回当前设置的I/O设备,如果当前没有设置设备,则返回None

另请参阅

setDevice()

floatingPointPrecision()
Return type:

FloatingPointPrecision

返回数据流的浮点精度。

isDeviceTransactionStarted()
Return type:

布尔

__lshift__(st)
Parameters:

stQCborSimpleType

Return type:

QDataStream

__lshift__(arg__2)
Parameters:

arg__2QChar

Return type:

QDataStream

__lshift__(arg__2)
Parameters:

arg__2QDate

Return type:

QDataStream

__lshift__(attr)
Parameters:

attr属性

Return type:

QDataStream

__lshift__(combination)
Parameters:

组合QKeyCombination

Return type:

QDataStream

__lshift__(arg__2)
Parameters:

arg__2QTime

Return type:

QDataStream

__lshift__(arg__2)
Parameters:

arg__2QVector2D

Return type:

QDataStream

__lshift__(arg__2)
Parameters:

arg__2QVector3D

Return type:

QDataStream

__lshift__(arg__2)
Parameters:

arg__2QVector4D

Return type:

QDataStream

__lshift__(i)
Parameters:

i – 整数

Return type:

QDataStream

__lshift__(arg__2)
Parameters:

arg__2QBitArray

Return type:

QDataStream

__lshift__(uuid)
Parameters:

uuidQBluetoothUuid

Return type:

QDataStream

__lshift__(arg__2)
Parameters:

arg__2QBrush

Return type:

QDataStream

__lshift__(arg__2)
Parameters:

arg__2QByteArray

Return type:

QDataStream

__lshift__(arg__2)
Parameters:

arg__2QCanBusFrame

Return type:

QDataStream

__lshift__(arg__2)
Parameters:

arg__2QCborArray

Return type:

QDataStream

__lshift__(arg__2)
Parameters:

arg__2QCborMap

Return type:

QDataStream

__lshift__(arg__2)
Parameters:

arg__2QCborValue

Return type:

QDataStream

__lshift__(arg__2)
Parameters:

arg__2QColor

Return type:

QDataStream

__lshift__(arg__2)
Parameters:

arg__2QColorSpace

Return type:

QDataStream

__lshift__(cursor)
Parameters:

光标QCursor

Return type:

QDataStream

__lshift__(arg__2)
Parameters:

arg__2QDateTime

Return type:

QDataStream

__lshift__(arg__2)
Parameters:

arg__2QEasingCurve

Return type:

QDataStream

__lshift__(arg__2)
Parameters:

arg__2QFont

Return type:

QDataStream

__lshift__(monitor)
Parameters:

监控QGeoAreaMonitorInfo

Return type:

QDataStream

__lshift__(circle)
Parameters:

圆形QGeoCircle

Return type:

QDataStream

__lshift__(coordinate)
Parameters:

坐标QGeoCoordinate

Return type:

QDataStream

__lshift__(path)
Parameters:

路径QGeoPath

Return type:

QDataStream

__lshift__(polygon)
Parameters:

多边形QGeoPolygon

Return type:

QDataStream

__lshift__(info)
Parameters:

信息QGeoPositionInfo

Return type:

QDataStream

__lshift__(rectangle)
Parameters:

矩形QGeoRectangle

Return type:

QDataStream

__lshift__(info)
Parameters:

信息QGeoSatelliteInfo

Return type:

QDataStream

__lshift__(shape)
Parameters:

形状QGeoShape

Return type:

QDataStream

__lshift__(arg__2)
Parameters:

arg__2QHostAddress

Return type:

QDataStream

__lshift__(arg__2)
Parameters:

arg__2QIcon

Return type:

QDataStream

__lshift__(arg__2)
Parameters:

arg__2QImage

Return type:

QDataStream

__lshift__(arg__2)
Parameters:

arg__2QJSValue

Return type:

QDataStream

__lshift__(arg__2)
Parameters:

arg__2QJsonArray

Return type:

QDataStream

__lshift__(arg__2)
Parameters:

arg__2QJsonDocument

Return type:

QDataStream

__lshift__(arg__2)
Parameters:

arg__2QJsonObject

Return type:

QDataStream

__lshift__(arg__2)
Parameters:

arg__2QJsonValue

Return type:

QDataStream

__lshift__(ks)
Parameters:

ksQKeySequence

Return type:

QDataStream

__lshift__(arg__2)
Parameters:

arg__2QLine

Return type:

QDataStream

__lshift__(arg__2)
Parameters:

arg__2QLineF

Return type:

QDataStream

__lshift__(item)
Parameters:

项目QListWidgetItem

Return type:

QDataStream

__lshift__(arg__2)
Parameters:

arg__2QLocale

Return type:

QDataStream

__lshift__(arg__2)
Parameters:

arg__2QMargins

Return type:

QDataStream

__lshift__(arg__2)
Parameters:

arg__2QMarginsF

Return type:

QDataStream

__lshift__(arg__2)
Parameters:

arg__2QMatrix4x4

Return type:

QDataStream

__lshift__(pdu)
Parameters:

pduQModbusPdu

Return type:

QDataStream

__lshift__(pdu)
Parameters:

pduQModbusRequest

Return type:

QDataStream

__lshift__(pdu)
Parameters:

pduQModbusResponse

Return type:

QDataStream

__lshift__(arg__2)
Parameters:

arg__2QMqttTopicFilter

Return type:

QDataStream

__lshift__(arg__2)
Parameters:

arg__2QMqttTopicName

Return type:

QDataStream

__lshift__(arg__2)
Parameters:

arg__2QNetworkCacheMetaData

Return type:

QDataStream

__lshift__(arg__2)
Parameters:

arg__2QPageRanges

Return type:

QDataStream

__lshift__(arg__2)
Parameters:

arg__2QPainterPath

Return type:

QDataStream

__lshift__(p)
Parameters:

pQPalette

Return type:

QDataStream

__lshift__(arg__2)
Parameters:

arg__2QPen

Return type:

QDataStream

__lshift__(arg__2)
Parameters:

arg__2QPicture

Return type:

QDataStream

__lshift__(arg__2)
Parameters:

arg__2QPixmap

Return type:

QDataStream

__lshift__(arg__2)
Parameters:

arg__2QPoint

Return type:

QDataStream

__lshift__(arg__2)
Parameters:

arg__2QPointF

Return type:

QDataStream

__lshift__(polygon)
Parameters:

多边形QPolygon

Return type:

QDataStream

__lshift__(array)
Parameters:

数组QPolygonF

Return type:

QDataStream

__lshift__(arg__2)
Parameters:

arg__2QQuaternion

Return type:

QDataStream

__lshift__(arg__2)
Parameters:

arg__2QRect

Return type:

QDataStream

__lshift__(arg__2)
Parameters:

arg__2QRectF

Return type:

QDataStream

__lshift__(arg__2)
Parameters:

arg__2QRegion

Return type:

QDataStream

__lshift__(re)
Parameters:

reQRegularExpression

Return type:

QDataStream

__lshift__(info)
Parameters:

信息QRemoteObjectSourceLocationInfo

Return type:

QDataStream

__lshift__(arg__2)
Parameters:

arg__2QSize

Return type:

QDataStream

__lshift__(arg__2)
Parameters:

arg__2QSizeF

Return type:

QDataStream

__lshift__(arg__2)
Parameters:

arg__2QSizePolicy

Return type:

QDataStream

__lshift__(item)
Parameters:

项目QStandardItem

Return type:

QDataStream

__lshift__(arg__1)
Parameters:

arg__1 – str

__lshift__(arg__2)
Parameters:

arg__2 – 字符串

Return type:

QDataStream

__lshift__(item)
Parameters:

项目QTableWidgetItem

Return type:

QDataStream

__lshift__(tz)
Parameters:

时区QTimeZone

Return type:

QDataStream

__lshift__(arg__2)
Parameters:

arg__2QTransform

Return type:

QDataStream

__lshift__(item)
Parameters:

项目QTreeWidgetItem

Return type:

QDataStream

__lshift__(arg__2)
Parameters:

arg__2QUrl

Return type:

QDataStream

__lshift__(arg__2)
Parameters:

arg__2QUuid

Return type:

QDataStream

__lshift__(p)
Parameters:

p – 对象

Return type:

QDataStream

__lshift__(version)
Parameters:

版本QVersionNumber

Return type:

QDataStream

__lshift__(voice)
Parameters:

语音QVoice

Return type:

QDataStream

__lshift__(history)
Parameters:

历史QWebEngineHistory

Return type:

QDataStream

__rshift__(arg__2)
Parameters:

arg__2QBitArray

Return type:

QDataStream

__rshift__(uuid)
Parameters:

uuidQBluetoothUuid

Return type:

QDataStream

__rshift__(arg__2)
Parameters:

arg__2QBrush

Return type:

QDataStream

__rshift__(arg__2)
Parameters:

arg__2QByteArray

Return type:

QDataStream

__rshift__(arg__2)
Parameters:

arg__2QCanBusFrame

Return type:

QDataStream

__rshift__(arg__2)
Parameters:

arg__2QCborArray

Return type:

QDataStream

__rshift__(arg__2)
Parameters:

arg__2QCborMap

Return type:

QDataStream

__rshift__(st)
Parameters:

stQCborSimpleType

Return type:

QDataStream

__rshift__(arg__2)
Parameters:

arg__2QCborValue

Return type:

QDataStream

__rshift__(arg__2)
Parameters:

arg__2QChar

Return type:

QDataStream

__rshift__(arg__2)
Parameters:

arg__2QColor

Return type:

QDataStream

__rshift__(arg__2)
Parameters:

arg__2QColorSpace

Return type:

QDataStream

__rshift__(cursor)
Parameters:

光标QCursor

Return type:

QDataStream

__rshift__(arg__2)
Parameters:

arg__2QDate

Return type:

QDataStream

__rshift__(arg__2)
Parameters:

arg__2QDateTime

Return type:

QDataStream

__rshift__(arg__2)
Parameters:

arg__2QEasingCurve

Return type:

QDataStream

__rshift__(arg__2)
Parameters:

arg__2QFont

Return type:

QDataStream

__rshift__(monitor)
Parameters:

监控QGeoAreaMonitorInfo

Return type:

QDataStream

__rshift__(circle)
Parameters:

圆形QGeoCircle

Return type:

QDataStream

__rshift__(coordinate)
Parameters:

坐标QGeoCoordinate

Return type:

QDataStream

__rshift__(path)
Parameters:

路径QGeoPath

Return type:

QDataStream

__rshift__(polygon)
Parameters:

多边形QGeoPolygon

Return type:

QDataStream

__rshift__(info)
Parameters:

信息QGeoPositionInfo

Return type:

QDataStream

__rshift__(attr)
Parameters:

attr属性

Return type:

QDataStream

__rshift__(rectangle)
Parameters:

矩形QGeoRectangle

Return type:

QDataStream

__rshift__(info)
Parameters:

信息QGeoSatelliteInfo

Return type:

QDataStream

__rshift__(shape)
Parameters:

形状QGeoShape

Return type:

QDataStream

__rshift__(arg__2)
Parameters:

arg__2QHostAddress

Return type:

QDataStream

__rshift__(arg__2)
Parameters:

arg__2QIcon

Return type:

QDataStream

__rshift__(arg__2)
Parameters:

arg__2QImage

Return type:

QDataStream

__rshift__(arg__2)
Parameters:

arg__2QJSValue

Return type:

QDataStream

__rshift__(arg__2)
Parameters:

arg__2QJsonArray

Return type:

QDataStream

__rshift__(arg__2)
Parameters:

arg__2QJsonDocument

Return type:

QDataStream

__rshift__(arg__2)
Parameters:

arg__2QJsonObject

Return type:

QDataStream

__rshift__(arg__2)
Parameters:

arg__2QJsonValue

Return type:

QDataStream

__rshift__(combination)
Parameters:

组合QKeyCombination

Return type:

QDataStream

__rshift__(ks)
Parameters:

ksQKeySequence

Return type:

QDataStream

__rshift__(arg__2)
Parameters:

arg__2QLine

Return type:

QDataStream

__rshift__(arg__2)
Parameters:

arg__2QLineF

Return type:

QDataStream

__rshift__(item)
Parameters:

项目QListWidgetItem

Return type:

QDataStream

__rshift__(arg__2)
Parameters:

arg__2QLocale

Return type:

QDataStream

__rshift__(arg__2)
Parameters:

arg__2QMargins

Return type:

QDataStream

__rshift__(arg__2)
Parameters:

arg__2QMarginsF

Return type:

QDataStream

__rshift__(arg__2)
Parameters:

arg__2QMatrix4x4

Return type:

QDataStream

__rshift__(code)
Parameters:

代码FunctionCode

Return type:

QDataStream

__rshift__(pdu)
Parameters:

pduQModbusRequest

Return type:

QDataStream

__rshift__(pdu)
Parameters:

pduQModbusResponse

Return type:

QDataStream

__rshift__(arg__2)
Parameters:

arg__2QMqttTopicFilter

Return type:

QDataStream

__rshift__(arg__2)
Parameters:

arg__2QMqttTopicName

Return type:

QDataStream

__rshift__(arg__2)
Parameters:

arg__2QNetworkCacheMetaData

Return type:

QDataStream

__rshift__(arg__2)
Parameters:

arg__2QPageRanges

Return type:

QDataStream

__rshift__(arg__2)
Parameters:

arg__2QPainterPath

Return type:

QDataStream

__rshift__(p)
Parameters:

pQPalette

Return type:

QDataStream

__rshift__(arg__2)
Parameters:

arg__2QPen

Return type:

QDataStream

__rshift__(arg__2)
Parameters:

arg__2QPicture

Return type:

QDataStream

__rshift__(arg__2)
Parameters:

arg__2QPixmap

Return type:

QDataStream

__rshift__(arg__2)
Parameters:

arg__2QPoint

Return type:

QDataStream

__rshift__(arg__2)
Parameters:

arg__2QPointF

Return type:

QDataStream

__rshift__(polygon)
Parameters:

多边形QPolygon

Return type:

QDataStream

__rshift__(array)
Parameters:

数组QPolygonF

Return type:

QDataStream

__rshift__(arg__2)
Parameters:

arg__2QQuaternion

Return type:

QDataStream

__rshift__(arg__2)
Parameters:

arg__2QRect

Return type:

QDataStream

__rshift__(arg__2)
Parameters:

arg__2QRectF

Return type:

QDataStream

__rshift__(arg__2)
Parameters:

arg__2QRegion

Return type:

QDataStream

__rshift__(re)
Parameters:

reQRegularExpression

Return type:

QDataStream

__rshift__(info)
Parameters:

信息QRemoteObjectSourceLocationInfo

Return type:

QDataStream

__rshift__(arg__2)
Parameters:

arg__2QSize

Return type:

QDataStream

__rshift__(arg__2)
Parameters:

arg__2QSizeF

Return type:

QDataStream

__rshift__(arg__2)
Parameters:

arg__2QSizePolicy

Return type:

QDataStream

__rshift__(item)
Parameters:

项目QStandardItem

Return type:

QDataStream

__rshift__(arg__2)
Parameters:

arg__2 – 字符串

Return type:

QDataStream

__rshift__(item)
Parameters:

项目QTableWidgetItem

Return type:

QDataStream

__rshift__(arg__2)
Parameters:

arg__2QTime

Return type:

QDataStream

__rshift__(tz)
Parameters:

时区QTimeZone

Return type:

QDataStream

__rshift__(arg__2)
Parameters:

arg__2QTransform

Return type:

QDataStream

__rshift__(item)
Parameters:

项目QTreeWidgetItem

Return type:

QDataStream

__rshift__(arg__2)
Parameters:

arg__2QUrl

Return type:

QDataStream

__rshift__(arg__2)
Parameters:

arg__2QUuid

Return type:

QDataStream

__rshift__(p)
Parameters:

p – 对象

Return type:

QDataStream

__rshift__(arg__2)
Parameters:

arg__2QVector2D

Return type:

QDataStream

__rshift__(arg__2)
Parameters:

arg__2QVector3D

Return type:

QDataStream

__rshift__(arg__2)
Parameters:

arg__2QVector4D

Return type:

QDataStream

__rshift__(version)
Parameters:

版本QVersionNumber

Return type:

QDataStream

__rshift__(voice)
Parameters:

语音QVoice

Return type:

QDataStream

__rshift__(history)
Parameters:

历史记录QWebEngineHistory

Return type:

QDataStream

__rshift__(i)
Parameters:

i – 布尔值

Return type:

QDataStream

从流中读取一个布尔值到 i。返回对流的引用。

__rshift__(i)
Parameters:

ichar

Return type:

QDataStream

readBool()
Return type:

布尔

readBytes(len)
Parameters:

lenqint64

Return type:

PyTuple

readDouble()
Return type:

浮点数

readFloat()
Return type:

浮点数

readInt16()
Return type:

整数

readInt32()
Return type:

整数

readInt64()
Return type:

整数

readInt8()
Return type:

整数

readQChar()
Return type:

QChar

readQString()
Return type:

字符串

readQStringList()
Return type:

字符串列表

readQVariant()
Return type:

对象

readRawData(len)
Parameters:

len – int

Return type:

整数

从流中最多读取 len 字节到 s 中,并返回读取的字节数。如果发生错误,此函数返回 -1。

缓冲区 s 必须预先分配。数据不会被解码。

readString()
Return type:

字符串

readUInt16()
Return type:

整数

readUInt32()
Return type:

整数

readUInt64()
Return type:

整数

readUInt8()
Return type:

整数

resetStatus()

重置数据流的状态。

另请参阅

状态 status() setStatus()

rollbackTransaction()

回滚一个读取事务。

此函数通常用于在提交事务之前检测到不完整读取时回滚事务。

如果在内部事务上调用,回滚将委托给最外层的事务,随后启动的内部事务将被迫失败。

对于最外层的事务,将流数据恢复到startTransaction()调用的点。如果数据流读取了损坏的数据或任何内部事务被中止,此函数将中止事务。

如果前面的流操作成功,将数据流的状态设置为

  • 读取超过末尾

  • .

setByteOrder(bo)
Parameters:

boByteOrder

设置序列化字节顺序为 bo

bo 参数可以是 BigEndianLittleEndian

默认设置为大端序。除非有特殊要求,否则我们建议保留此设置。

另请参阅

byteOrder()

setDevice(d)
Parameters:

dQIODevice

void QDataStream::setDevice( QIODevice *d)

将I/O设备设置为d,可以是None以取消设置当前I/O设备。

另请参阅

device()

setFloatingPointPrecision(precision)
Parameters:

精度FloatingPointPrecision

设置数据流的浮点精度为precision。如果浮点精度为DoublePrecision且数据流版本为Qt_4_6或更高,所有浮点数将以64位精度写入和读取。如果浮点精度为SinglePrecision且版本为Qt_4_6或更高,所有浮点数将以32位精度写入和读取。

对于Qt_4_6之前的版本,数据流中浮点数的精度取决于调用的流操作符。

默认是 DoublePrecision

请注意,此属性不会影响qfloat16实例的序列化或反序列化。

警告

此属性必须在写入数据流的对象和读取数据流的对象上设置为相同的值。

setStatus(status)
Parameters:

状态Status

将数据流的状态设置为给定的status

在调用resetStatus()之前,后续对setStatus()的调用将被忽略。

setVersion(v)
Parameters:

v – 整数

警告

本节包含从C++自动翻译到Python的代码片段,可能包含错误。

设置数据序列化格式的版本号为v,这是Version枚举的一个值。

如果您使用的是当前版本的Qt,您不必设置版本,但对于您自己的自定义二进制格式,我们建议您这样做;请参阅详细描述中的版本控制

为了适应新功能,某些Qt类的数据流序列化格式在某些Qt版本中发生了变化。如果你想读取由早期版本的Qt创建的数据,或者编写可以由使用早期版本Qt编译的程序读取的数据,请使用此函数来修改QDataStream使用的序列化格式。

Version 枚举为不同版本的 Qt 提供了符号常量。例如:

out = QDataStream(file)
out.setVersion(QDataStream.Qt_4_0)

另请参阅

version() 版本

skipRawData(len)
Parameters:

len – int

Return type:

整数

跳过设备中的len字节。返回实际跳过的字节数,如果出错则返回-1。

这相当于在长度为 len 的缓冲区上调用 readRawData() 并忽略缓冲区。

另请参阅

seek()

startTransaction()

在流上启动一个新的读取事务。

定义读取操作序列中的一个可恢复点。对于顺序设备,读取的数据将在内部复制,以允许在不完全读取的情况下进行恢复。对于随机访问设备,此函数保存流的当前位置。调用commitTransaction()rollbackTransaction()abortTransaction()来完成当前事务。

一旦事务开始,后续对此函数的调用将使事务递归。内部事务充当最外层事务的代理(即,向最外层事务报告读取操作的状态,最外层事务可以恢复流的位置)。

注意

不支持恢复到嵌套的startTransaction()调用的点。

当在事务中发生错误时(包括内部事务失败),从数据流的读取将被暂停(所有后续的读取操作将返回空/零值),并且后续的内部事务将被迫失败。启动一个新的最外层事务可以从这种状态中恢复。这种行为使得不需要单独对每个读取操作进行错误检查。

status()
Return type:

状态

返回数据流的状态。

version()
Return type:

整数

返回数据序列化格式的版本号。

另请参阅

setVersion() Version

writeBool(arg__1)
Parameters:

arg__1 – 布尔值

writeBytes(s)
Parameters:

s – 字符串

Return type:

QDataStream

将长度指示符 len 和缓冲区 s 写入流并返回流的引用。

len 被序列化为一个 quint32 和一个可选的 quint64,后面跟着来自 slen 字节。请注意,数据没有被编码。

writeDouble(arg__1)
Parameters:

arg__1 – 浮点数

writeFloat(arg__1)
Parameters:

arg__1 – 浮点数

writeInt16(arg__1)
Parameters:

arg__1 – 整数

writeInt32(arg__1)
Parameters:

arg__1 – 整数

writeInt64(arg__1)
Parameters:

arg__1 – 整数

writeInt8(arg__1)
Parameters:

arg__1 – 整数

writeQChar(arg__1)
Parameters:

arg__1QChar

writeQString(arg__1)
Parameters:

arg__1 – str

writeQStringList(arg__1)
Parameters:

arg__1 – 字符串列表

writeQVariant(arg__1)
Parameters:

arg__1 – 对象

writeRawData(arg__1)
Parameters:

arg__1PyBuffer

writeRawData(s)
Parameters:

s – 字符串

Return type:

整数

s 写入 len 字节到流中。返回实际写入的字节数,或在错误时返回 -1。数据进行编码。

writeString(arg__1)
Parameters:

arg__1 – str

writeUInt16(arg__1)
Parameters:

arg__1 – 整数

writeUInt32(arg__1)
Parameters:

arg__1 – 整数

writeUInt64(arg__1)
Parameters:

arg__1 – 整数

writeUInt8(arg__1)
Parameters:

arg__1 – 整数