2016-05-06 8 views
0

編集:Qtのタイプの標準的なテキスト表現は何ですか?

私は明確にすべき:私は、タイプのない名前だけの値をシリアル化しようとしています。


Qtの組み込み型には人間が読める形式またはテキスト形式がありますか? (たとえば、QMetaTypeまたはQVariant :: Typeに登録されているもの)

QSettingsのソースを見ると、その "ini"形式は手動で作成されます。 "ini"表現を手動で直列化および逆直列化する巨大なスイッチブロックがあります。残念ながら、それはQSettingsの "私的な"実装の一部であるため、標準ではありません。

Qtタイプのテキスト表現には標準はありませんか?

+0

私はないと思います。私は、QVariant/QVariantMap型とJSONを研究するものとして提案します。 – hyde

答えて

1
class MyClass {}; 
Q_DECLARE_METATYPE(MyClass) 

QVariant var = QVariant::fromValue<MyClass>(MyClass()); 
std::cout << var.typeName() << std::endl; 

は「MyClass」と表示されます。あなたはどんな登録されたタイプでもそれをすることができます:QMetaType::typeName(qMetaTypeId<int>())

+0

私は、私が探しているものについてより具体的に私の質問を編集しました。 – SaburoutaMishima

+0

@SaburoutaMishima、 'QDataStream'を' QFile'で使用し、値を 'QVariant'sとしてシリアライズ/デシリアライズしてください。 'QVariant :: typeName()'はtypenameを出力し、 'QVariant :: toString()'はほぼすべての型の値のテキスト表現を出力します。面白いことに、 'QVariant'は' QVariantList'や 'QVariantMap'でも使えるので、1つのクラスでデータツリー全体をシリアライズすることができます –

関連する問題