1

それの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)

さらにwriteBytesfromQDataStreamは PySide (1.2.2) では実装されていません。

QDataStreamでは、 PySide と Python 3.X でバイナリ データを送信するにはどうすればよいでしょうか。


背景: 最終的に、バイナリ データを をQSocket介して便利に送信し、QDataStreamを使用する前に圧縮したいと考えていzlibます。

4

1 に答える 1