在它的Qt文档中QDataStream
说
QDataStream 类提供二进制数据到 QIODevice 的序列化。
所以这就是我想要做的。我想将 Python 3.X 上 PySide 中的字节发送到QDataStream
.
writeRawData
但是期望unicode
作为输入。
import zlib
from PySide import QtCore
file = QtCore.QFile("test.dat")
file.open(QtCore.QIODevice.WriteOnly)
data = "some text"
compressed_data = zlib.compress(data.encode()) # type is now bytes
out = QtCore.QDataStream(file)
out.writeRawData(compressed_data)
给出一个TypeError
:
TypeError: 'PySide.QtCore.QDataStream.writeRawData' called with wrong argument types:
PySide.QtCore.QDataStream.writeRawData(bytes)
Supported signatures:
PySide.QtCore.QDataStream.writeRawData(unicode, int)
此外,PySide (1.2.2) 没有实现 from writeBytes
。QDataStream
那么,如何QDataStream
在 PySide 和 Python 3.X 中通过 a 发送二进制数据?
背景:最后我想QSocket
通过a方便地将二进制数据发送到a QDataStream
,并且我想在使用之前对其进行压缩zlib
。