Я пытаюсь сериализовать объект QHash и сохранить его в QByteArray (для отправки с использованием QUDPSocket или QTCPSocket).
Моя текущая попытка выглядит так:
// main.cpp
#include <QtCore/QCoreApplication>
#include <QHash>
#include <QVariant>
#include <QDebug>
int main(int argc, char *argv[])
{
QHash<QString,QVariant> hash;
hash.insert("Key1",1);
hash.insert("Key2","thing2");
QByteArray ba;
QDataStream ds(&ba, QIODevice::WriteOnly);
ds << hash;
qDebug() << ds;
}
Когда это запускается, я получаю это из qDebug()
:
QIODevice::read: WriteOnly device
QIODevice::read: WriteOnly device
QIODevice::read: WriteOnly device
QVariant(, )
Документация говорит, что это должно записывать в байтовый массив, но, очевидно, здесь этого не происходит. Что я делаю не так?
Qt 4.7.1 в OS-X
Спасибо!
-J