我需要保存一个QMap<int, QList<uint16_t>>类型的数据。
QSettings s;
s.setValue<mkey, QVariant::fromValue<QMap<int, QList<uint16_t>>>(mMapSaveData));
这样直接保存的话,会报错 “Invalid type to save”。
只需要在执行QSettings操作前注册一下数据类型就可以了,如下:
qRegisterMetaTypeStreamOperators<QMap<int, QList<uint16_t>>>();
QSettings s;
s.setValue<mkey, QVariant::fromValue<QMap<int, QList<uint16_t>>>(mMapSaveData));
这样再保存就可以正常工作了。
网友评论