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 は raw バイトとして格納されます。出力形式でより読みやすく具体的なものが必要な場合は、QDataStream の入力 (>>) および出力 (<<) 演算子を実装する必要があります。

于 2012-11-06T09:51:28.157 に答える