尝试使用流操作符填充后,QBitArray大小保持为零

时间:2013-06-05 16:00:43

标签: qt qbytearray

为什么QBitArray的大小保持为零?我使用的是Qt 5.0.2。

QByteArray bytes(4,'b'); // four bytes
QBitArray bits;
QDataStream stream(&bytes, QIODevice::ReadWrite);

stream >> bits;

qDebug() << bytes.size() << bits.size();

1 个答案:

答案 0 :(得分:2)

QDataStream阅读时,它希望数据采用某种格式,如http://qt-project.org/doc/qt-5.0/qtcore/datastreamformat.html所述。在流媒体QBitArray的情况下,这是:

The array size (quint32)
The array bits, i.e. (size + 7)/8 bytes

如果不是这种情况,操作将失败 - 您可以检查QDataStream::status()以检测错误。