0

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

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

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

带有内部哈希表QHash<QString,QObject*>

这是“官方”方式吗?

4

1 回答 1

0

Qt 仅为 QVariant 类型提供开箱即用的序列化。例如,QJson库处理该行为。但是您可以为每个需要的类调用 Q_DECLARE_METATYPE 以在 QVariant 中注册它。因此,用户定义的 QVariant 存储为原始字节。如果你想要一些更可红色和更具体的输出格式,那么你应该实现 QDataStream 输入 (>>) 和输出 (<<) 运算符。

于 2012-11-06T09:51:28.157 回答