将各种Qt内容存储在内存中的正确方法是什么?

时间:2012-11-02 06:09:42

标签: qt4

我正在尝试实现一个全局设置对象,即保存/加载任意Qt对象,

但我想知道这是否是正确的方法,因为我只存储相关的QString,QList,QSet(容器),

QObject *get (const QString & key);
void save (const QString & key, QObject *value);

使用内部哈希表QHash<QString,QObject*>

这是“官方”方式吗?

1 个答案:

答案 0 :(得分:0)

Qt仅为QVariant类型提供了开箱即用的序列化。例如,QJson库处理该行为。但您可以为每个需要的类调用Q_DECLARE_METATYPE以在QVariant中注册它。因此,用户定义的QVariant存储为原始字节。如果您想要输出格式更具可更新性和特定性,那么您应该实现QDataStream输入(&gt;&gt;)和输出(&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;