Пару комментарий к коду:
QDataStream stream;
stream >> v; /*QVariant*/
MyClass c;
v.setValue(c); // Не важно что нам все таки удалось там считать мы его затрем
MyClass class = v.value<MyClass>(); // А теперь мы получим наше с
Думаю будет правильным определить свой оператор >>