2009-04-10 16 views
1

My Qtアプリケーションは、一度に1つの「プロジェクト」を作成/開く/保存できる必要があります。プロジェクトの設定をファイルに保存する無駄な方法は何ですか?それはXMLやそれほど恐ろしいものではないでしょうか?Qtアプリケーションで「プロジェクトファイル」を扱うにはどうすればよいですか?

もちろん、ファイルに保存するデータは、時間の経過とともに変更されることがあります。

私が必要とするのはQSettingsですが、プロジェクトに限定されています。アプリケーション全体ではなく、アプリケーション内にあります。

+0

projcetの設定はどういう意味ですか? Qtはプロジェクト/ Makefileで十分ですか? – dirkgently

+0

彼の意味:彼のプログラムは異なるプロジェクトを使用しています。彼はこれを保存する最良の方法を知りたいと思っています。 – RvdK

+0

@PoweRoy、それは私がしたいのです –

答えて

1

QSettingsを使用して、特定の.iniファイルにデータを格納できます。 文書から:

特定のファイルまたはレジストリパスに保存されている設定にアクセスしたいことがあります。すべてのプラットフォームで、INIファイルを直接読み込む場合は、最初の引数としてファイル名を使用し、QSettings :: IniFormatを第2引数として渡すQSettingsコンストラクタを使用できます。例: Q設定の設定( "/ home/petra/misc/myapp.ini"、 QSettings :: IniFormat);

1

私はそれをユーザーが編集できるようにするために、ほとんどのLinuxアプリケーションのように、行ごとに1つのキー=プレーンテキストに固執します。

しかし、これは設定のためだけであり、複雑な構造を必要とする完全なプロジェクトのデータではありません。

だからおそらくJSON

1

ProのXML:

  • あなたがそれで任意の言語で文字列の任意の種類を格納することができますエディタ
  • でそれを見てすることができます(Unicodeサポート)
  • それは
  • を学ぶことは簡単です
  • 複数のプログラムで同じXMLを読み取ることができます
  • XMLでデータを構造化するのは簡単です。たとえば、キー/値リストを使用すると、木のような構造を保存する必要があるときに問題が発生します。

コントラXML

  • 結果は
  • ほとんどのプログラミング言語(C++のような、特に古いもの)はXMLのための良いサポートを持っていない、やや肥大化しています。古いXML APIは、どの言語(最小の共通点)でも実装できるように設計されています。 '言っ途切れる。
  • "エンコーディング"(または "文字セット")の概念を理解する必要があります。これは一目瞭然に見えるかもしれませんが、あなたを噛む可能性のあるいくつかの隠された問題があります。だから、いつもあなたが正しくなっていることを確認するために、いくつかのウムラウトと漢字でコードをテストしてください。
+1

Qtはとても良いXML APIを持っていますhttp://doc.trolltech.com/4.0/qtxml.html。 – Sharique

+2

このAPIは、私の本では「とても良いXML API」ではないDOMに基づいています。私は「html.body.p [3] .text = '...」のようなものを好むgetChildElement( "body")。getChildElements( "p")。get(3).setText( "..."); –

関連する問題