自定義數據結構放入QVariant,在序列化時拋出異常
ASSERT failure in QVariant::save: “invalid type to save”
自定義數據結構如struct MyData,除了要在結構體后面加
struct MyData
{
...
}
Q_DECLARE_METATYPE(MyData)
如果需要用到流的輸入輸出,如QDataStream operator<< 和operator>>,要重寫操作符,如下
QDataStream& operator<<(QDataStream& out, const MyData& data);
QDataStream& operator>>(QDataStream& in, MyData& data);QDataStream& operator<<(QDataStream& out, const MyData& data) {out << ...return out;
}
QDataStream& operator>>(QDataStream& in, MyData& data) {in >> ...return in;
}
此外,還要通過qRegisterMetaTypeStreamOperators
注冊流操作符,可以放在main函數中
qRegisterMetaTypeStreamOperators<MyData>("MyData");