I want to save a QList<QList<MyClass>>
as QVariant but I alway get the error QVariant::save: unable to save type 'QList<QList<MyClass*> >' (type id: 1042)
. I've implemente the streaming operator for MyClass and it works fine.
QDataStream& operator<<(QDataStream& out, const MyClass& item)
{
//Properties to write
return out;
}
QDataStream& operator>>(QDataStream& in, MyClass& item)
{
//Properties to read
return in;
}
I also registered the types
Q_DECLARE_METATYPE(MyClass*)
Q_DECLARE_METATYPE(QList<MyClass*>)
Q_DECLARE_METATYPE(QList<QList<MyClass*>>)
and
qRegisterMetaType<QList<MyClass*>>("QList<MyClass*>");
qRegisterMetaType<QList<QList<MyClass*>>>("QList<QList<MyClass*>>");
qRegisterMetaType<MyClass*>("MyClass*");
If I only stream one MyClass Object everything is fine. I can save it as QVariant, stream it and convert it back to MyClass. I thought I don't have to implement a operator for QList<MyClass>
or QList<QList<MyClass>>
because streaming a Template Class in a QList is already implemented by Qt. So whats the matter?