QVariant из QList<QList <MyClass >>

Я хочу сохранить QList<QList<MyClass>> как QVariant, но я всегда получаю ошибку QVariant::save: unable to save type 'QList<QList<MyClass*> >' (type id: 1042), Я реализовал оператор потоковой передачи для MyClass, и он отлично работает.

QDataStream& operator<<(QDataStream& out, const MyClass& item)
{   
    //Properties to write
    return out;
}

QDataStream& operator>>(QDataStream& in, MyClass& item)
{   
    //Properties to read
    return in;
}

Я также зарегистрировал типы

Q_DECLARE_METATYPE(MyClass*)
Q_DECLARE_METATYPE(QList<MyClass*>)
Q_DECLARE_METATYPE(QList<QList<MyClass*>>)

а также

qRegisterMetaType<QList<MyClass*>>("QList<MyClass*>");
qRegisterMetaType<QList<QList<MyClass*>>>("QList<QList<MyClass*>>");
qRegisterMetaType<MyClass*>("MyClass*");

Если я только один поток MyClass Object все в порядке. Я могу сохранить его как QVariant, транслировать его и преобразовать обратно в MyClass. Я думал, что мне не нужно реализовывать оператор для QList<MyClass> или же QList<QList<MyClass>> потому что потоковая передача класса шаблона в QList уже реализована Qt. Так в чем дело?

0 ответов

Другие вопросы по тегам